1 puntos por GN⁺ 2024-08-04 | Aún no hay comentarios. | Compartir por WhatsApp

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.

Aún no hay comentarios.