HN Publicado: Ell, uma interface de linha de comando para LLMs escrita em Bash
(github.com/simonmysun)Interface de linha de comando ellA
Recursos
- Fazer perguntas a LLMs no terminal
- Compatível com pipes
- Enviar o contexto do terminal para LLMs e fazer perguntas
- Conversar com LLMs no terminal
- Suporte a recursos adicionais por meio de chamadas de função e templates
Requisitos
- bash
- jq (para parsing de JSON)
- curl (para enviar requisições HTTPS)
- perl (para PCRE. O bash POSIX não oferece suporte a expressões regulares look-ahead e look-behind. Não é necessário se você não usar o modo de histórico)
Instalação
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
Esses comandos clonam o repositório no diretório .ellrc.d e o adicionam ao PATH.
Configuração
A seguir, um exemplo de configuração usando o gemini-1.5-flash do 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/
Exemplo de configuração usando o gpt-4o-mini da 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
Exemplos de uso
- Fazer uma pergunta:
ell "What is the capital of France?"
- Especificar o modelo e usar entrada de arquivo:
ell -m gpt-4o -f user_prompt.txt
- Ler da stdin:
cat somecode.py | ell -f -
- Adicionar imediatamente um prompt extra:
(cat somecode.py; echo "Explain this code") | ell -f -
- Registrar a entrada e a saída do terminal e usá-las como contexto:
ell -r
# do random stuff
ell What does the error code mean?
ell How to fix it?
- Executar no modo interativo:
ell -i
- Combinar o modo de histórico com o modo interativo:
ell -r -i
- Especificar um template e iniciar o modo de histórico e o modo interativo:
ell -r -i -t ctf-gemini
ou
ell -r -i -t ctf-openai
Criação de templates
Consulte Templates para mais detalhes sobre como usar templates.
Estilização
Consulte Styling para mais detalhes sobre estilização.
Plugins
Plugins são scripts que podem ser chamados pelo ell. Plugins de provedores de LLM não estão incluídos. Consulte Templates para mais detalhes.
Riscos a considerar
Consulte Risks Consideration.
FAQ
- Q: Por que o nome "ell"?
- A: "ell" é uma combinação de shell e LLM. Ele usa backends de LLM por meio de scripts shell. "shellm" também foi considerado, mas poderia causar confusão, então foi alterado para "ell". É curto e fácil de lembrar.
- Q: Por que foi escrito em Bash?
- A: Bash é o shell mais comum em sistemas do tipo Unix, e não há necessidade de usar uma linguagem mais complexa.
- Q: Qual é a diferença entre o ell e outros projetos semelhantes?
- A: O ell é escrito em Bash quase puro, por isso é muito leve e fácil de instalar. Também é muito fácil de expandir e modificar. É compatível com pipes.
Projetos semelhantes
- chatgpt-cli: CLI para ChatGPT escrita em Go
- gpt-cli: CLI para vários backends de LLM escrita em Python
- gptcli: CLI para LLMs da OpenAI escrita em TypeScript
- x-cmd: coleção de várias ferramentas escrita em POSIX bash e awk
- gpt-bash-cli: CLI para a API da OpenAI, armazena requisições e respostas em um banco de dados
- mods: ferramenta CLI para conversar com LLMs escrita em Go
- nicechat: interface de chat CLI para modelos da OpenAI escrita em Node.js
- autocomplete-sh: CLI para LLMs escrita em bash
- plandex: ferramenta CLI para desenvolvimento de workflows integrados com IA escrita em Go
- llm: ferramenta CLI para manipulação avançada de LLMs escrita em Python
- aichat: ferramenta CLI para conversar com vários provedores de LLM escrita em Rust
Contribuição
Contribuições são sempre bem-vindas! Se você tiver ideias, sugestões ou relatórios de bugs, abra uma issue ou envie um pull request.
Licença
Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Resumo do GN⁺
- ell é uma interface de linha de comando para LLMs escrita em Bash, leve e fácil de instalar
- Suporta integração com vários modelos de LLM e é compatível com pipes
- Pode usar o contexto do terminal ao combinar o modo de histórico e o modo interativo
- Projetos semelhantes incluem chatgpt-cli, gpt-cli e gptcli, escritos em linguagens diferentes
Ainda não há comentários.