HN público: Ell, una interfaz de línea de comandos para LLM escrita en Bash
(github.com/simonmysun)Interfaz de línea de comandos ell
Funciones
- Hacer preguntas a LLMs desde la terminal
- Compatible con pipes
- Pasar el contexto de la terminal a los LLMs y hacer preguntas
- Chatear con LLMs desde la terminal
- Soporte para funciones adicionales mediante llamadas a funciones y plantillas
Requisitos
- bash
- jq (para parsear JSON)
- curl (para enviar solicitudes HTTPS)
- perl (para PCRE. Bash POSIX no soporta expresiones regulares look-ahead ni look-behind. No es necesario si no se usa el modo de historial)
Instalación
git clone --depth 1 https://github.com/simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc
o
git clone --depth 1 git@github.com:simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc
Este comando clona el repositorio en el directorio .ellrc.d y lo agrega al PATH.
Configuración
A continuación se muestra una configuración de ejemplo usando 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/
Configuración de ejemplo usando gpt-4o-mini de 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
Ejemplos de uso
- Hacer una pregunta:
ell "What is the capital of France?"
- Especificar el modelo y usar entrada desde un archivo:
ell -m gpt-4o -f user_prompt.txt
- Leer desde stdin:
cat somecode.py | ell -f -
- Agregar un prompt adicional al instante:
(cat somecode.py; echo "Explain this code") | ell -f -
- Registrar la entrada y salida de la terminal y usarlas como contexto:
ell -r
# do random stuff
ell What does the error code mean?
ell How to fix it?
- Ejecutar en modo interactivo:
ell -i
- Combinar modo de historial y modo interactivo:
ell -r -i
- Especificar una plantilla e iniciar el modo de historial y el modo interactivo:
ell -r -i -t ctf-gemini
o
ell -r -i -t ctf-openai
Crear plantillas
Para más detalles sobre el uso de plantillas, consulta Templates.
Estilo
Para más detalles sobre el estilo, consulta Styling.
Plugins
Los plugins son scripts que se pueden invocar desde ell. No incluye plugins de proveedores de LLM. Para más detalles, consulta Templates.
Riesgos a considerar
Consulta Risks Consideration.
FAQ
- Q: ¿Por qué se llama "ell"?
- A: "ell" es una combinación de shell y LLM. Usa un backend de LLM mediante scripts de shell. También se consideró "shellm", pero podía prestarse a confusión, así que se cambió a "ell". Es corto y fácil de recordar.
- Q: ¿Por qué fue escrito en Bash?
- A: Bash es el shell más común en sistemas tipo Unix y no hay necesidad de usar un lenguaje más complejo.
- Q: ¿Cuál es la diferencia entre ell y otros proyectos similares?
- A: ell está escrito casi por completo en Bash, por lo que es muy liviano y fácil de instalar. También es muy fácil de extender y modificar. Además, es compatible con pipes.
Proyectos similares
- chatgpt-cli: CLI de ChatGPT escrito en Go
- gpt-cli: CLI para varios backends de LLM escrito en Python
- gptcli: CLI para LLM de OpenAI escrito en TypeScript
- x-cmd: Colección de varias herramientas escrita en POSIX bash y awk
- gpt-bash-cli: CLI para la API de OpenAI, guarda solicitudes y respuestas en una base de datos
- mods: Herramienta CLI para conversar con LLM escrita en Go
- nicechat: Interfaz de chat CLI para modelos de OpenAI escrita en Node.js
- autocomplete-sh: CLI para LLM escrita en bash
- plandex: Herramienta CLI para desarrollar flujos de trabajo integrados con IA escrita en Go
- llm: Herramienta CLI para manipulación avanzada de LLM escrita en Python
- aichat: Herramienta CLI para conversar con varios proveedores de LLM escrita en Rust
Contribuciones
¡Las contribuciones siempre son bienvenidas! Si tienes ideas, sugerencias o reportes de errores, abre un issue o envía un pull request.
Licencia
Este proyecto está licenciado bajo la licencia MIT. Para más detalles, consulta el archivo LICENSE.
Resumen de GN⁺
- ell es una interfaz de línea de comandos para LLM escrita en Bash, liviana y fácil de instalar
- Soporta integración con varios modelos LLM y es compatible con pipes
- Puede aprovechar el contexto de la terminal combinando el modo de historial y el modo interactivo
- Entre los proyectos similares están chatgpt-cli, gpt-cli y gptcli, cada uno escrito en un lenguaje distinto
Aún no hay comentarios.