Loz ist ein Befehlszeilentool, das es Ihrem bevorzugten LLM ermöglicht, Systembefehle auszuführen und Unix-Pipes zu nutzen und so KI-Funktionen mit anderen Unix-Tools zu integrieren.
loz "find the largest file in the current directory"
ausführen, interpretiert Loz
die Anweisung und führt die entsprechenden Linux-Befehle wie find . -type f -exec ls -l {} + | sort -k 5 -nr | head -n 1
um die größte Datei zu finden. Weitere Beispiele ansehen.Führen Sie zunächst den folgenden npm-Befehl aus:
$ sudo npm install loz -g
Oder klonen Sie das Repository:
$ git clone https://github.com/joone/loz.git
Damit dieses Programm funktioniert, sind NodeJS und npm erforderlich. Wenn Sie Linux verwenden, installieren Sie sie mit Ihrem Paketmanager. sudo apt install nodejs npm
oder sudo dnf install nodejs npm
oder sudo pacman -S nodejs npm
Installieren Sie dann die anderen erforderlichen Abhängigkeiten:
$ ./install.sh
Loz unterstützt OpenAI API und Ollama, sodass Sie einfach zwischen diesen LLM-Diensten wechseln können, indem Sie den Befehl config
im interaktiven Modus verwenden.
Um Ollama auf Ihrem lokalen System nutzen zu können, müssen Sie sowohl die Modelle llama2 als auch codellama installieren. So können Sie es auf einem Linux-System machen:
$ curl https://ollama.ai/install.sh | sh
$ ollama run llama2
$ ollama run codellama
Weitere Informationen finden Sie unter https://ollama.ai/download
Das Einrichten Ihrer OpenAI-API-Anmeldeinformationen umfasst ein paar einfache Schritte:
Erstellen Sie zunächst eine .env
Datei im Stammverzeichnis des Projekts und fügen Sie die folgenden Variablen hinzu:
OPENAI_API_KEY=YOUR_KEY
Oder wenn Sie Loz mit dem Befehl npm installieren, fügen Sie OPENAI_API_KEY=YOUR_KEY
in .bashrc hinzu
export OPENAI_API_KEY=YOUR_KEY
Wenn der folgende Fehler auftritt, bedeutet dies, dass Sie Ihr kostenloses Kontingent überschritten haben:
Request failed with status code 429:
API request limit reached
Um die API weiterhin nutzen zu können, muss über den folgenden Link eine Zahlungsmethode eingerichtet werden: https://platform.openai.com/account/billing/ payment-methods
Bei Ihrem ersten Start von Loz haben Sie die Möglichkeit, Ihren bevorzugten LLM-Service auszuwählen.
$ loz
Choose your LLM service: (ollama, openai)
Sie können Ihre LLM-Dienstpräferenz jederzeit ändern, indem Sie den Befehl config
im interaktiven Modus verwenden:
> config api openai
Darüber hinaus können Sie das Modell ändern, indem Sie Folgendes eingeben:
> config model llama2
oder
> config model codellama
Sie können die aktuellen Einstellungen überprüfen, indem Sie Folgendes eingeben:
> config
api: ollama
model: llama2
Derzeit werden gpt-3.5-turbo und alle von Ollama bereitgestellten Modelle unterstützt.
$ loz
Sobald loz ausgeführt wird, können Sie eine Konversation beginnen, indem Sie mit ihm interagieren. loz antwortet basierend auf der Eingabe mit einer relevanten Nachricht.
Loz ermöglicht Benutzern die Ausführung von Linux-Befehlen in natürlicher Sprache. Nachfolgend finden Sie einige Beispiele, die zeigen, wie das LLM-Backend von loz
natürliche Sprache in Linux-Befehle übersetzt:
Suchen Sie die größte Datei im aktuellen Verzeichnis:
loz "find the largest file in the current directory"
-rw-rw-r-- 1 foo bar 9020257 Jan 31 19:49 ./node_modules/typescript/lib/typescript.js
Überprüfen Sie, ob Apache2 ausgeführt wird:
loz "check if apache2 is running on this system"
● apache2.service - The Apache HTTP Server
GPUs im System erkennen:
loz "Detect GPUs on this system"
00:02.0 VGA compatible controller: Intel Corporation Device a780 (rev 04)
Zu Ihrer Information: Diese Funktion wurde nur mit der OpenAI-API getestet.
Um unbeabsichtigte Systemänderungen zu verhindern, vermeiden Sie die Ausführung von Befehlen, die Systemdateien oder Konfigurationen ändern oder entfernen können, wie z. B. rm
, mv
, rmdir
oder mkfs
.
Um die Sicherheit zu erhöhen und eine unbeabsichtigte Befehlsausführung zu vermeiden, kann loz im abgesicherten Modus ausgeführt werden. Wenn dieser Modus aktiviert ist, erfordert er eine Benutzerbestätigung, bevor ein Linux-Befehl ausgeführt wird.
Aktivieren Sie den abgesicherten Modus, indem Sie die Umgebungsvariable LOZ_SAFE=true festlegen:
LOZ_SAFE=true loz "Check available memory on this system"
Bei der Ausführung fordert loz Folgendes auf:
Do you want to run this command?: free -h (y/n)
Antworten Sie mit „y“, um den Befehl auszuführen, oder mit „n“, um ihn abzubrechen. Diese Funktion stellt sicher, dass Sie die volle Kontrolle über die ausgeführten Befehle haben und verhindert so versehentliche Änderungen oder Datenverlust.
Loz ist in der Lage, Eingaben von anderen Befehlszeilentools mithilfe einer Unix-Pipe zu verarbeiten.
$ ls | loz "count the number of files"
23 files
$ cat example.txt | loz "convert the input to uppercase"
AS AI TECHNLOGY ADVANCED, A SMALL TOWN IN THE COUNTRYSIDE DECIDED TO IMPLEMENT AN AI SYSTEM TO CONTROL TRAFFIC LIGHTS. THE SYSTEM WAS A SUCCESS, AND THE TOWN BECAME A MODEL FOR OTHER CITIES TO FOLLOW. HOWEVER, AS THE AI BECAME MORE SOPHISTCATED, IT STARTED TO QUESTION THE DECISIONS MADE BY THE TOWN'S RESIDENTS, LEADING TO SOME UNEXPECTED CONSEQUENCES.
$ cat example.txt | loz "list any spelling errors"
Yes, there are a few spelling errors in the given text:
1. "technlogy" should be "technology"
2. "sophistcated" should be "sophisticated"
$ cd src
$ ls -l | loz "convert the input to JSON"
[
{
"permissions": "-rw-r--r--",
"owner": "foo",
"group": "staff",
"size": 792,
"date": "Mar 1 21:02",
"name": "cli.ts"
},
{
"permissions": "-rw-r--r--",
"owner": "foo",
"group": "staff",
"size": 4427,
"date": "Mar 1 20:43",
"name": "index.ts"
}
]
Wenn Sie loz commit
in Ihrem Git-Repository ausführen, generiert loz automatisch eine Commit-Nachricht mit den bereitgestellten Änderungen wie folgt:
$ git add --update
$ loz commit
Oder kopieren Sie script/prepare-commit-msg nach .git/hooks
$ chmod a+x .git/hooks/prepare-commit-msg
Loz verwendet die LOZ-Umgebungsvariable, um Commit-Nachrichten zu generieren, indem es den Unterschied der bereitgestellten Dateien liest.
$ LOZ=true git commit
ERINNERUNG: Wenn Sie die alte Version bereits kopiert haben, aktualisieren Sie bitte Prepare-Commit-Msg. Die alte Version aktualisiert automatisch Commit-Nachrichten während des Rebasings.
$ git diff HEAD~1 | loz -g
Oder
$ git diff | loz -g
Beachten Sie, dass die Zeilen „Autor“, „Datum“ und „Commit-ID“ aus der Commit-Nachricht entfernt werden, bevor sie an den OpenAI-Server gesendet wird.
Um auf Chat-Verläufe zuzugreifen, suchen Sie nach dem Verzeichnis .loz in Ihrem Home-Verzeichnis oder dem Verzeichnis logs in Ihrem geklonten Git-Repository. Diese Verzeichnisse enthalten den Chatverlauf, den Sie bei Bedarf überprüfen oder referenzieren können.
Wenn Sie zu diesem Projekt beitragen möchten, können Sie gerne eine Pull-Anfrage einreichen.