O Autogen é uma estrutura de código aberto que permite o desenvolvimento de aplicativos de IA de conversação usando vários agentes.
O Chroma DB é um banco de dados vetorial de código aberto para armazenar e recuperar incorporações de vetores.
virtualenv -p python3.11 env_namepython -m venv env_nameenv_name/scripts/activate pip install -U "pyautogen[retrievechat]" chromadb
-U diz a Pip para atualizar quaisquer pacotes já instalados para suas versões mais recentes antes de instalar."pyautogen[retrievechat]" instala o pacote Pyautogen e também instala o recurso extra opcional "RetrieveChat" desse pacote export AUTOGEN_USE_DOCKER=False
$Env:AUTOGEN_USE_DOCKER="False"
Exportar AUTOGEN_USE_DOCKER=False diz ao Pyautogen para executar suas tarefas diretamente no host em vez de usar contêineres do Docker. Ele ignora a dependência do Docker, mas também perde alguns dos benefícios de isolamento que o Docker fornece.
export OPENAI_API_KEY=Fxxxxxxxxxxxxxxxxxxxxxxxxx
$Env:OPENAI_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxx"
app.py python app.py
Este arquivo de código define um sistema de chatbot usando as bibliotecas Autogen e Chromadb. Aqui está um detalhamento passo a passo do código:
O primeiro passo é importar as bibliotecas necessárias. Nesse caso, estamos usando o Autogen e o Chromadb para criar um chatbot que possa recuperar informações de um banco de dados e gerar respostas com base em um modelo de idioma.
import autogen
import chromadbEm seguida, definimos o assistente de chatbot usando a classe AssistantAgent na Biblioteca Autogen. Esta classe recebe um nome, configuração do modelo de idioma e mensagem do sistema como entrada.
assistant = AssistantAgent (
name = "my_assistant" ,
llm_config = llm_config_proxy ,
system_message = "You are a helpful assistant. Provide accurate answers based on the context. Respond 'Unsure about answer' if uncertain."
)Também definimos o usuário usando a classe recuperadaProxyagent do módulo AutoGen.AgentChat.Contrib. Esta classe recebe um nome, modo de entrada humana, mensagem do sistema, número máximo de replias automáticas consecutivas e configuração para recuperar informações de um banco de dados como entrada.
user = RetrieveUserProxyAgent (
name = "me_user" ,
human_input_mode = "NEVER" ,
system_message = "Assistant who has extra content retrieval power for solving difficult problems." ,
max_consecutive_auto_reply = 10 ,
retrieve_config = {
"task" : "code" ,
"docs_path" : [ './docs/autogen.pdf' ],
"chunk_token_size" : 1000 ,
"model" : config_list [ 0 ][ "model" ],
"client" : chromadb . PersistentClient ( path = '/tmp/chromadb' ),
"collection_name" : "pdfreader" ,
"get_or_create" : True ,
},
code_execution_config = { "work_dir" : "coding" },
)Definimos a pergunta do usuário ou prompt como uma variável de string.
user_question = """
Compose a short blog post showcasing how AutoGen is revolutionizing the future of Generative AI
through the collaboration of various agents. Craft an introduction, main body, and a compelling
conclusion. Encourage readers to share the post. Keep the post under 500 words.
"""Por fim, iniciamos a sessão de bate -papo entre o usuário e o chatbot usando o método initiate_chat da classe RecturieserProxyagent.
user . initiate_chat ( assistant , problem = user_question )No geral, este arquivo de código define um sistema de chatbot que pode responder às perguntas ou solicitações do usuário recuperando informações de um banco de dados e gerando respostas com base em um modelo de idioma. O chatbot também pode executar o código e fornecer respostas com base no contexto da pergunta do usuário.