Autogen ist ein Open-Source-Framework, das die Entwicklung von Konversations-KI-Anwendungen mithilfe mehrerer Wirkstoffe ermöglicht.
Chroma DB ist eine Open-Source-Vektor-Datenbank zum Speichern und Abrufen von Vektoreinbettungen.
virtualenv -p python3.11 env_namepython -m venv env_nameenv_name/scripts/activate pip install -U "pyautogen[retrievechat]" chromadb
-U fordert PIP auf, vor der Installation bereits alle bereits installierten Pakete auf ihre neuesten Versionen zu aktualisieren."pyautogen[retrievechat]" installiert das Pyautogen -Paket und installiert auch die optionale "Abrufechat" zusätzliche Funktion dieses Pakets export AUTOGEN_USE_DOCKER=False
$Env:AUTOGEN_USE_DOCKER="False"
Exportieren AUTOGEN_USE_DOCKER=False fordert Pyautogen an, seine Aufgaben direkt auf dem Host auszuführen, anstatt Docker -Container zu verwenden. Es umgeht die Docker -Abhängigkeit, verliert aber auch einige der Isolationsvorteile, die Docker bietet.
export OPENAI_API_KEY=Fxxxxxxxxxxxxxxxxxxxxxxxxx
$Env:OPENAI_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxx"
app.py ausführen python app.py
Diese Codedatei definiert ein Chatbot -System mit den Autogen- und Chromadb -Bibliotheken. Hier ist eine Schritt-für-Schritt-Aufschlüsselung des Code:
Der erste Schritt besteht darin, die erforderlichen Bibliotheken zu importieren. In diesem Fall verwenden wir Autogen und Chromadb, um einen Chatbot zu erstellen, mit dem Informationen aus einer Datenbank abgerufen werden und Antworten basierend auf einem Sprachmodell generiert werden können.
import autogen
import chromadbAls nächstes definieren wir den Chatbot -Assistenten mithilfe der AssistantAGent -Klasse aus der Autogenbibliothek. Diese Klasse nimmt einen Namen, eine Sprachmodellkonfiguration und eine Systemnachricht als Eingabe an.
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."
)Wir definieren den Benutzer auch mit der RetrievuserProxyagent -Klasse aus dem Modul autogen.agentchat.contrib. Diese Klasse nimmt einen Namen, einen menschlichen Eingangsmodus, eine Systemnachricht, eine maximale Anzahl aufeinanderfolgender automatischer Ersetzen und Konfiguration zum Abrufen von Informationen aus einer Datenbank als Eingabe an.
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" },
)Wir definieren die Frage des Benutzers oder Eingabeaufforderung als Zeichenfolgevariable.
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.
"""Schließlich initiieren wir die Chat -Sitzung zwischen dem Benutzer und dem Chatbot mithilfe der Initiate_Chat -Methode der RetrieveUserProxyagent -Klasse.
user . initiate_chat ( assistant , problem = user_question )Insgesamt definiert diese Codedatei ein Chatbot -System, mit dem Benutzerfragen oder -anforderungen beantwortet werden können, indem Informationen aus einer Datenbank abgerufen und Antworten basierend auf einem Sprachmodell generiert werden. Der Chatbot kann auch Code ausführen und Antworten basierend auf dem Kontext der Frage des Benutzers geben.