Autogen es un marco de código abierto que permite el desarrollo de aplicaciones de IA conversacionales utilizando múltiples agentes.
Chroma DB es una base de datos de vectores de código abierto para almacenar y recuperar incrustaciones de vectores.
virtualenv -p python3.11 env_namepython -m venv env_nameenv_name/scripts/activate pip install -U "pyautogen[retrievechat]" chromadb
-U le dice a PIP que actualice los paquetes ya instalados en sus últimas versiones antes de instalar."pyautogen[retrievechat]" instala el paquete de pyauTogen y también instala la característica adicional opcional "RecupereChat" de ese paquete export AUTOGEN_USE_DOCKER=False
$Env:AUTOGEN_USE_DOCKER="False"
Exportar AUTOGEN_USE_DOCKER=False le dice a PyauTogen que ejecute sus tareas directamente en el host en lugar de usar contenedores Docker. Evita la dependencia del Docker, pero también pierde algunos de los beneficios de aislamiento que proporciona Docker.
export OPENAI_API_KEY=Fxxxxxxxxxxxxxxxxxxxxxxxxx
$Env:OPENAI_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxx"
app.py python app.py
Este archivo de código define un sistema de chatbot utilizando las bibliotecas Autogen y ChromAdB. Aquí hay un desglose paso a paso del código:
El primer paso es importar las bibliotecas necesarias. En este caso, estamos utilizando Autogen y ChromAdB para crear un chatbot que pueda recuperar información de una base de datos y generar respuestas basadas en un modelo de lenguaje.
import autogen
import chromadbA continuación, definimos al asistente de chatbot usando la clase Asistente de la biblioteca de Autogen. Esta clase toma un nombre, configuración del modelo de idioma y mensaje del 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."
)También definimos al usuario utilizando la clase RemieveUserProxyagent del módulo Autogen.agentChat.Contrib. Esta clase toma un nombre, modo de entrada humana, mensaje del sistema, número máximo de auto-replias consecutivas y configuración para recuperar información de una base de datos 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 la pregunta o el indicador del usuario como una variable de cadena.
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.
"""Finalmente, iniciamos la sesión de chat entre el usuario y el chatbot utilizando el método iniciate_chat de la clase RemieveUserProxyAgent.
user . initiate_chat ( assistant , problem = user_question )En general, este archivo de código define un sistema de chatbot que puede responder a las preguntas o indicaciones del usuario recuperando información de una base de datos y generando respuestas basadas en un modelo de idioma. El chatbot también puede ejecutar código y proporcionar respuestas basadas en el contexto de la pregunta del usuario.