Autogen est un cadre open-source qui permet le développement d'applications de l'IA conversationnelles à l'aide de plusieurs agents.
Chroma DB est une base de données vectorielle open source pour stocker et récupérer des incorporations vectorielles.
virtualenv -p python3.11 env_namepython -m venv env_nameenv_name/scripts/activate pip install -U "pyautogen[retrievechat]" chromadb
-U dit à PIP de mettre à niveau tous les packages déjà installés à leurs dernières versions avant l'installation."pyautogen[retrievechat]" installe le package PyAutogen et installe également la fonctionnalité supplémentaire "RetrieVeChat" de ce package export AUTOGEN_USE_DOCKER=False
$Env:AUTOGEN_USE_DOCKER="False"
L'exportation AUTOGEN_USE_DOCKER=False dit à PyAutogen d'exécuter ses tâches directement sur l'hôte plutôt que d'utiliser des conteneurs Docker. Il contourne la dépendance de Docker mais perd également certains des avantages d'isolement que Docker fournit.
export OPENAI_API_KEY=Fxxxxxxxxxxxxxxxxxxxxxxxxx
$Env:OPENAI_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxx"
app.py python app.py
Ce fichier de code définit un système de chatbot à l'aide des bibliothèques Autogen et ChromAdB. Voici une ventilation étape par étape du code:
La première étape consiste à importer les bibliothèques nécessaires. Dans ce cas, nous utilisons Autogen et ChromAdB pour créer un chatbot qui peut récupérer des informations à partir d'une base de données et générer des réponses basées sur un modèle de langue.
import autogen
import chromadbEnsuite, nous définissons l'assistant de chatbot à l'aide de la classe AssistantAgent à partir de la bibliothèque Autogen. Cette classe prend un nom, une configuration de modèle de langue et un message système en entrée.
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."
)Nous définissons également l'utilisateur à l'aide de la classe RetrieveUserProxyagent à partir du module autogen.agentchat.Contrib. Cette classe prend un nom, un mode d'entrée humain, un message système, un nombre maximum de répliques automatique consécutives et une configuration pour la récupération d'informations à partir d'une base de données en entrée.
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" },
)Nous définissons la question ou l'invite de l'utilisateur en tant que variable de chaîne.
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.
"""Enfin, nous initions la session de chat entre l'utilisateur et le chatbot à l'aide de la méthode initiate_chat de la classe RetrieveUserProxyagent.
user . initiate_chat ( assistant , problem = user_question )Dans l'ensemble, ce fichier de code définit un système de chatbot qui peut répondre aux questions ou invites de l'utilisateur en récupérant des informations à partir d'une base de données et en générant des réponses basées sur un modèle de langue. Le chatbot peut également exécuter du code et fournir des réponses en fonction du contexte de la question de l'utilisateur.