1 points par GN⁺ 2024-08-04 | Aucun commentaire pour le moment. | Partager sur WhatsApp

Interface en ligne de commande ellA

Fonctionnalités

  • Poser des questions aux LLM depuis le terminal
  • Compatible avec les pipelines
  • Transmettre le contexte du terminal aux LLM et poser des questions
  • Discuter avec des LLM depuis le terminal
  • Prise en charge de fonctionnalités supplémentaires via les appels de fonction et les templates

Prérequis

  • bash
  • jq (pour l’analyse de JSON)
  • curl (pour l’envoi de requêtes HTTPS)
  • perl (pour PCRE. Le bash POSIX ne prend pas en charge les expressions régulières look-ahead et look-behind. Inutile si vous n’utilisez pas le mode historique)

Installation

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

ou

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

Ces commandes clonent le dépôt dans le répertoire .ellrc.d et l’ajoutent au PATH.

Configuration

Voici un exemple de configuration utilisant le gemini-1.5-flash de Google :

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/

Exemple de configuration utilisant le gpt-4o-mini d’OpenAI :

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

Exemples d’utilisation

  • Poser une question :
ell "What is the capital of France?"
  • Spécifier un modèle et utiliser une entrée de fichier :
ell -m gpt-4o -f user_prompt.txt
  • Lire depuis stdin :
cat somecode.py | ell -f -
  • Ajouter immédiatement un prompt supplémentaire :
(cat somecode.py; echo "Explain this code") | ell -f -
  • Enregistrer les entrées et sorties du terminal et les utiliser comme contexte :
ell -r
# do random stuff
ell What does the error code mean?
ell How to fix it?
  • Lancer en mode interactif :
ell -i
  • Combiner le mode historique et le mode interactif :
ell -r -i
  • Spécifier un template et démarrer le mode historique et le mode interactif :
ell -r -i -t ctf-gemini
ou
ell -r -i -t ctf-openai

Écriture de templates

Pour plus de détails sur l’utilisation des templates, voir Templates.

Style

Pour plus de détails sur le style, voir Styling.

Plugins

Les plugins désignent des scripts pouvant être appelés depuis ell. Les plugins des fournisseurs de LLM ne sont pas inclus. Pour plus de détails, voir Templates.

Risques à prendre en compte

Voir Risks Consideration.

FAQ

  • Q : Pourquoi l’appeler « ell » ?
    • A : « ell » est une combinaison de shell et de LLM. Il utilise des backends LLM via des scripts shell. « shellm » a aussi été envisagé, mais le terme pouvait prêter à confusion, d’où le changement vers « ell ». C’est court et facile à retenir.
  • Q : Pourquoi a-t-il été écrit en Bash ?
    • A : Bash est le shell le plus courant sur les systèmes de type Unix, et il n’est pas nécessaire d’utiliser un langage plus complexe.
  • Q : Quelle est la différence entre ell et d’autres projets similaires ?
    • A : ell est écrit presque entièrement en Bash, ce qui le rend très léger et facile à installer. Il est également très facile à étendre et à modifier. Il est compatible avec les pipelines.

Projets similaires

  • chatgpt-cli : CLI ChatGPT écrit en Go
  • gpt-cli : CLI pour divers backends LLM écrit en Python
  • gptcli : CLI pour les LLM OpenAI écrit en TypeScript
  • x-cmd : collection de divers outils écrits en bash POSIX et awk
  • gpt-bash-cli : CLI pour l’API OpenAI, stockant les requêtes et réponses dans une base de données
  • mods : outil CLI pour discuter avec des LLM écrit en Go
  • nicechat : interface de chat CLI pour les modèles OpenAI écrite en Node.js
  • autocomplete-sh : CLI pour les LLM écrit en bash
  • plandex : outil CLI pour le développement de workflows intégrés à l’IA écrit en Go
  • llm : outil CLI pour la manipulation avancée des LLM écrit en Python
  • aichat : outil CLI pour discuter avec divers fournisseurs de LLM écrit en Rust

Contribution

Les contributions sont toujours les bienvenues ! Si vous avez des idées, suggestions ou rapports de bugs, ouvrez une issue ou soumettez une pull request.

Licence

Ce projet est distribué sous licence MIT. Pour plus de détails, voir le fichier LICENSE.

Résumé de GN⁺

  • ell est une interface en ligne de commande pour les LLM écrite en Bash, légère et facile à installer
  • Elle prend en charge l’intégration avec divers modèles de LLM et s’intègre bien aux pipelines
  • Elle permet d’exploiter le contexte du terminal en combinant le mode historique et le mode interactif
  • Parmi les projets similaires figurent chatgpt-cli, gpt-cli et gptcli, chacun étant écrit dans un langage différent

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.