1 Punkte von GN⁺ 2024-08-04 | Noch keine Kommentare. | Auf WhatsApp teilen

ellA-Kommandozeilenoberfläche

Funktionen

  • LLMs im Terminal Fragen stellen
  • Pipe-freundlich
  • Terminal-Kontext an LLMs übergeben und Fragen stellen
  • Mit LLMs im Terminal chatten
  • Unterstützung für zusätzliche Funktionen durch Function Calling und Templates

Anforderungen

  • bash
  • jq (zum Parsen von JSON)
  • curl (zum Senden von HTTPS-Anfragen)
  • perl (für PCRE. POSIX-bash unterstützt keine Look-ahead- und Look-behind-Regulären Ausdrücke. Nicht erforderlich, wenn der Aufzeichnungsmodus nicht verwendet wird)

Installation

git clone --depth 1 https://github.com/simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc

oder

git clone --depth 1 git@github.com:simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc

Diese Befehle klonen das Repository in das Verzeichnis .ellrc.d und fügen es dem PATH hinzu.

Konfiguration

Beispielkonfiguration mit Googles gemini-1.5-flash:

ELL_API_STYLE=gemini
ELL_LLM_MODEL=gemini-1.5-flash
ELL_TEMPLATE=default-gemini
ELL_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ELL_API_URL=https://generativelanguage.googleapis.com/v1beta/models/

Beispielkonfiguration mit OpenAIs gpt-4o-mini:

ELL_API_STYLE=openai
ELL_LLM_MODEL=gpt-4o-mini
ELL_TEMPLATE=default-openai
ELL_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ELL_API_URL=https://api.openai.com/v1/chat/completions

Verwendungsbeispiele

  • Eine Frage stellen:
ell "What is the capital of France?"
  • Ein Modell angeben und Dateieingabe verwenden:
ell -m gpt-4o -f user_prompt.txt
  • Von stdin lesen:
cat somecode.py | ell -f -
  • Sofort einen zusätzlichen Prompt anhängen:
(cat somecode.py; echo "Explain this code") | ell -f -
  • Terminal-Ein- und -Ausgaben aufzeichnen und als Kontext verwenden:
ell -r
# do random stuff
ell What does the error code mean?
ell How to fix it?
  • Im interaktiven Modus ausführen:
ell -i
  • Aufzeichnungsmodus und interaktiven Modus kombinieren:
ell -r -i
  • Ein Template angeben und Aufzeichnungsmodus sowie interaktiven Modus starten:
ell -r -i -t ctf-gemini
oder
ell -r -i -t ctf-openai

Templates schreiben

Weitere Informationen zur Verwendung von Templates siehe Templates.

Styling

Weitere Informationen zum Styling siehe Styling.

Plugins

Plugins sind Skripte, die von ell aufgerufen werden können. Plugins von LLM-Anbietern sind nicht enthalten. Weitere Informationen siehe Templates.

Zu berücksichtigende Risiken

Siehe Risks Consideration.

FAQ

  • Q: Warum heißt es "ell"?
    • A: "ell" ist eine Kombination aus shell und LLM. Es verwendet ein shell-Skript als LLM-Backend. "shellm" wurde ebenfalls in Betracht gezogen, war aber missverständlich, daher wurde es in "ell" geändert. Es ist kurz und leicht zu merken.
  • Q: Warum wurde es in Bash geschrieben?
    • A: Bash ist die am weitesten verbreitete Shell auf Unix-ähnlichen Systemen, und es gibt keinen Bedarf, eine komplexere Sprache zu verwenden.
  • Q: Was ist der Unterschied zwischen ell und anderen ähnlichen Projekten?
    • A: ell ist fast vollständig in reinem Bash geschrieben, dadurch sehr leichtgewichtig und einfach zu installieren. Es lässt sich sehr leicht erweitern und anpassen. Es ist Pipe-freundlich.

Ähnliche Projekte

  • chatgpt-cli: ChatGPT-CLI, geschrieben in Go
  • gpt-cli: CLI für verschiedene LLM-Backends, geschrieben in Python
  • gptcli: CLI für OpenAI-LLMs, geschrieben in TypeScript
  • x-cmd: Sammlung verschiedener Werkzeuge, geschrieben in POSIX-bash und awk
  • gpt-bash-cli: CLI für die OpenAI API, speichert Anfragen und Antworten in einer Datenbank
  • mods: CLI-Werkzeug zum Chatten mit LLMs, geschrieben in Go
  • nicechat: CLI-Chat-Oberfläche für OpenAI-Modelle, geschrieben in Node.js
  • autocomplete-sh: CLI für LLMs, geschrieben in bash
  • plandex: CLI-Werkzeug zur Entwicklung KI-integrierter Workflows, geschrieben in Go
  • llm: CLI-Werkzeug für die tiefgehende Arbeit mit LLMs, geschrieben in Python
  • aichat: CLI-Werkzeug zum Chatten mit verschiedenen LLM-Anbietern, geschrieben in Rust

Mitwirken

Beiträge sind immer willkommen! Wenn du Ideen, Vorschläge oder Fehlermeldungen hast, öffne ein Issue oder reiche einen Pull Request ein.

Lizenz

Dieses Projekt steht unter der MIT-Lizenz. Weitere Informationen siehe Datei LICENSE.

Zusammenfassung von GN⁺

  • ell ist eine in Bash geschriebene LLM-Kommandozeilenoberfläche, die leichtgewichtig und einfach zu installieren ist
  • Unterstützt die Integration mit verschiedenen LLM-Modellen und ist Pipe-freundlich
  • Kann Aufzeichnungsmodus und interaktiven Modus kombinieren, um Terminal-Kontext zu nutzen
  • Ähnliche Projekte sind unter anderem chatgpt-cli, gpt-cli und gptcli, jeweils in unterschiedlichen Sprachen geschrieben

Noch keine Kommentare.

Noch keine Kommentare.