HN vorgestellt: Ell, eine in Bash geschriebene Kommandozeilenoberfläche für LLMs
(github.com/simonmysun)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.