Este projeto é um pequeno wrapper do AutoGen. Integra o servidor proxy LiteLLM para lhe dar acesso fácil a qualquer LLM (proprietário ou de código aberto), sem ter que sair do conforto do seu terminal.
Ele usa as bibliotecas Rich e prompt_toolkit para colorir entradas/saídas, o que torna a leitura de respostas grandes em um terminal simples um pouco mais digerível:
Entrada: Saída
Esta seção fornece instruções sobre como configurar seu ambiente de desenvolvimento para trabalhar neste projeto.
Antes de começar, certifique-se de ter pyenv
ou conda
instalado em seu sistema para gerenciar versões e ambientes do Python.
Este projeto foi testado com Python 3.11.8
. Recomenda-se usar esta versão específica para evitar problemas de compatibilidade.
Se estiver usando pyenv
, você pode instalar o Python 3.11.8
e defini-lo como a versão local do projeto usando os seguintes comandos:
pyenv install 3.11.8
pyenv local 3.11.8
pyenv virtualenv myenv
Se preferir conda
, crie um novo ambiente com Python 3.11.8
usando o seguinte comando:
conda create --name myenv python=3.11.8
conda activate myenv
Substitua myenv
por um nome de sua escolha para o ambiente.
Depois de configurar a versão correta do Python, instale as dependências do projeto executando:
pip install -e .
Se você também planeja configurar e usar a interface do painel do proxy Litellm, que oferece monitoramento de custos e estatísticas de uso, instale as dependências extras por meio de:
pip install -e ' .[proxy] '
Copie o arquivo .env.secrets.example
para criar seu próprio arquivo .env.secrets
e preencha suas chaves de API específicas para serviços que você planeja usar, como OpenAI, MistralAI, modelos Anthropic ou outros.
cp .env.secrets.example .env.secrets
Edite o arquivo .env.secrets
com seu editor de texto preferido e atualize as chaves de API conforme necessário.
Primeiro você precisa configurar um banco de dados postgres para armazenar informações de uso do litellm. A maneira mais fácil de fazer isso é criar uma instância gratuita do Superbase postgres hospedada na AWS.
Quando o banco de dados estiver pronto para uso, certifique-se de conectá-lo
psql postgresql:// < user > : < password > @ < host > : < port > / < dbname >
Se a conexão for bem-sucedida, basta definir o env var DATABASE_URL
em seu arquivo .env.secrets
e você estará pronto para prosseguir. Na próxima vez que você iniciar o servidor Litellm, ele se conectará automaticamente ao banco de dados.
Com essas etapas, você estará pronto para trabalhar no projeto e executar os aplicativos.
Execute o seguinte comando
python setup.py fix
python setup.py review --file path/to/file
Um dos pontos fortes do LiteLLM é que ele oferece uma interface unificada para chamar vários LLMs, entre outros recursos interessantes. Neste contexto, usamos para estender os recursos do AutoGen para usar outros modelos de IA (que atualmente não são suportados imediatamente, mas são um WIP).
python setup.py litellm
Autogen também oferece uma interface de usuário elegante.
O comando a seguir inicia o aplicativo AGS e disponibiliza a interface do usuário em http://localhost:8083. O banco de dados sqlite AGS junto com outros artefatos relacionados são armazenados em src/ui
.
python setup.py ui
Por padrão, as solicitações do modelo OpenAI não são roteadas por meio do litellm. Isso ocorre porque, se você estiver usando apenas este provedor LLM, não faz sentido adicionar uma camada extra porque você pode monitorar facilmente os custos em https://platform.openai.com/usage. No entanto, se você usar vários provedores LLM, faz sentido ter todos os dados agregados em um único painel -> LiteLLM UI
.
Se o servidor proxy LiteLLM estiver instalado e funcionando, todas as solicitações openai serão automaticamente roteadas através do proxy.
Passos:
Depois de definir o ambiente e a configuração, você pode executar os aplicativos no diretório src/applications/
.
A execução de um aplicativo cria uma nova sessão de conversação com base no fluxo definido nesse aplicativo.
Existem 2 aplicativos genéricos de conversação:
start_conversation.py
inicia uma conversa simples com um agente selecionado em uma lista de agentes especializados predefinidos.start_curated_conversation.py
adiciona uma IA crítica à conversa que analisa as reivindicações do agente principal Novos agentes customizados podem ser incluídos no arquivo de definição de agente agents agents/custom_agents.py
.
Você pode ajustar a message
dentro de cada aplicativo ou executar o script e inserir seu prompt na linha de comando (recomendado). Os prompts têm suporte multilinha, então Enter
apenas insere uma nova linha. Para enviar o prompt pressione (Meta|Esc)+Enter
.
python chef.py
O aplicativo chef.py
demonstra como usar agentes para facilitar uma conversa sobre culinária. Mostra a configuração de um chat em grupo com vários agentes e o início de um chat com uma consulta do usuário.
ollama run codellama
litellm_config.yml
para conter as novas referências de modelo local ou referências a quaisquer outros serviços de API, como Mistral AI.Outros modelos populares: https://huggingface.co/WizardLM