Diese Demo basiert auf der Learn Microsoft-Website
Im Repository wird ein weiteres Jupyter-Notebook verfügbar sein, um zu zeigen, wie Assistenten auf komplexere Weise verwendet werden.
In dieser Demo werden Python, die Bibliothek OpenAi und Azure verwendet, um einen Assistenten für die Verwendung in einem Jupyter-Notebook zu erstellen.
Wenn Sie direkt in Azure Ai Studio testen möchten, finden Sie hier Azure OpenAi Studio
Dokumentation für Azure Ai Studio
Ein Assistent (oder mehrere, die zusammenarbeiten können!) kann mithilfe von Werkzeugen eine Vielzahl von Aufgaben erledigen, z. B. Fragen beantworten, Empfehlungen geben und Befehle ausführen.
Ein Assistent könnte einige Werkzeuge haben:
Mithilfe von Assistenten können Sie eine Vielzahl von Anwendungen erstellen, z. B. Chatbots, virtuelle Agenten und mehr.
Kurz gesagt, Sie könnten in wenigen Codezeilen einen Assistenten mit Werkzeugen erstellen, um eine Pipeline von Threads zu erstellen, um eine Anfrage oder Anforderung des Benutzers zu beantworten. Der Assistent wählt je nach Wunsch des Benutzers das richtige Werkzeug für den Bedarf aus.
In der gleichen Idee könnten Sie je nach Assistent ein anderes Modell verwenden, um eine bessere Reaktion zu erzielen oder die Kosten des Assistenten zu begrenzen
Sie können mehrere Assistenten mit unterschiedlichen Tools in einem Thread erstellen (asynchron oder nicht), um ein Problem zu lösen oder einem Benutzer eine Antwort zu geben. Sie können auch verschiedene Threads mit unterschiedlichen Assistenten erstellen
Multi-Assistant Thread Runs mit parallelen Funktionsaufrufen
Am Ende können Sie mit dieser Bibliothek Antworten im JSON-Format abrufen, ein Format, das einfach in Python zu verwenden ist und einige Prozesse darauf ausführen kann.
Um eine Orchestrierung des Assistenten zu erstellen, müssen Sie Folgendes verwalten:
Die erste Demo im Stammverzeichnis des Repositorys ist ein einfacher Assistent, der auf der Dokumentation von Microsoft basiert.
AoaiAssistant.ipynb
Namensszenario | Beschreibung Notizbuch | Link |
---|---|---|
Mathe-Lösungsassistent | 1 Assistent mit nur Code-Interpreter als Werkzeug | AoaiAssistant.ipynb |
Sie benötigen, wenn Sie das Notebook lokal testen möchten:
Python 3.8 oder höher
Visual Studio-Code und Plugins:
Ein Azure-Abonnement – 200 $ für das erste Abonnement
Zugriff auf den Azure OpenAi-Dienst Fordern Sie einen Zugriff für AOAI an
Zugriff auf das neueste gpt4 0125-Modell (aktuell verfügbar: Schweden Mitte, Westen der USA, Japan Osten)
Andere Modelle sind mit der Agentenfunktion kompatibel
Stellen Sie den Dienst entsprechend im Portal Azure für den Azure Open Ai-Dienst in der Region bereit
Führen Sie eine Bereitstellung des Modells im Azure OpenAi-Dienst Ai Studio durch und geben Sie einen Namen für die Bereitstellung ein
oder
Codespace zur Nutzung des Notebooks in der Cloud mit Github
Den Namen der Bereitstellung für das Modell (normalerweise haben Sie einen Namen angegeben, der sich vom Namen des Modells bei der Bereitstellung unterscheiden kann) in Azure Ai Studio finden Sie im Abschnitt „Bereitstellung“ des Modells, wenn Sie dies nicht tun. Ich erinnere mich nicht daran
Sie müssen die Informationen in der in „secrets.env“ umbenannten Datei „secrets_env“ korrekt ändern
Den Azure-Endpunkt und den Azure-Schlüssel für den Open Ai-Dienst finden Sie in Ihrem Azure-Portal/Abonnement oder direkt in der Konversationskategorie in Ai Studio, wobei im ersten Schritt das Modell ausgewählt und der Schaltflächencode angeklickt wird Anschließend müssen Sie auf die Schaltfläche „Geheimnis anzeigen“ klicken, um den Schlüssel zu erhalten. Der Endpunkt wird im Beispielcode angezeigt
Sie müssen auf jeden Codeschritt neben der Wiedergabeschaltfläche links in jeder Zelle klicken
Wenn keine Fehler vorliegen, erhalten Sie in der letzten Zelle diesen JSON-Dump mit dem Ergebnis und allen gesammelten Informationen
Wenn Sie bereit sind, können Sie die Schritte im AzureAOAI.ipynb-Notebook ausführen
In meinem Fall heißt meine Modellbereitstellung für gpt4-1106 gpt-4turbo
Sie können Notebook Python jetzt in Visual Studio-Code (oder in einem Browser mit Codespace) verwenden, wenn Sie das Ergebnis verarbeiten oder das Ergebnis des Assistenten orchestrieren möchten:
Haben Sie einen Assistenten erstellt? Möchten Sie verstehen, wie Threads und Nachrichten verwaltet werden?
Schauen Sie sich zunächst die Dokumentationen zum Verständnis an und beginnen Sie mit den Assistenten
Es respektiert einen bestimmten Ablauf, um einen Thread zu erstellen und Nachrichten in einem Thread zu verwalten.
Sequenzdiagramm
Teilnehmer A als Assistent Kreation
Teilnehmer B als Thread-Erstellung
Teilnehmer C als Benutzernachrichtenerstellung
Teilnehmer D als Thread-Ausführung
Teilnehmer E als Run Status Retrieval
Teilnehmer F als Status Check Loop
Teilnehmer G als Nachrichtenabruf
A->>B: Assistent mit Modell erstellen
B->>C: Thread erstellen
C->>D: Benutzernachricht zum Thread hinzufügen
D->>E: Thread ausführen
E->>F: Laufstatus abrufen
F->>F: Schleife, bis der Status endgültig ist
F-->>G: Status: abgeschlossen
Hinweis rechts von G: Nachrichten abrufen und anzeigen
F-->>A: Status: abgebrochen
F-->>A: Status: abgelaufen
F-->>A: Status: fehlgeschlagen
{
"data" : [
{
"id" : " msg_5Oc2nmN7boHKfYuJaOnxkYrQ " ,
"assistant_id" : " asst_vid43QSBUFAVr7f7nraAwfkS " , // the id of the assistant
"content" : [
{
"text" : {
"annotations" : [],
"value" : " The solution to the equation \ (3x + 11 = 14 \ ) is \ (x = 1 \ ). " // the result of the assistant
},
"type" : " text "
}
],
"created_at" : 1706827368 ,
"file_ids" : [],
"metadata" : {},
"object" : " thread.message " ,
"role" : " assistant " ,
"run_id" : " run_VlCTYceNmV8HlQyOLQUe7Xj6 " ,
"thread_id" : " thread_KM402gTevvYxlfxYA1ONQPHP "
},
{
"id" : " msg_ZHWVk1gJT292L4YJzlbLjmFq " ,
"assistant_id" : null ,
"content" : [
{
"text" : {
"annotations" : [],
"value" : " I need to solve the equation `3x + 11 = 14`. Can you help me? " // the rquest of the user
},
"type" : " text "
}
],
"created_at" : 1706827327 ,
"file_ids" : [],
"metadata" : {},
"object" : " thread.message " ,
"role" : " user " ,
"run_id" : null ,
"thread_id" : " thread_KM402gTevvYxlfxYA1ONQPHP " // id of the thread
}
],
"object" : " list " ,
"first_id" : " msg_5Oc2nmN7boHKfYuJaOnxkYrQ " , // the id of the first message - request user
"last_id" : " msg_ZHWVk1gJT292L4YJzlbLjmFq " , // Last message of the thread
"has_more" : false
}
Die Code-Interpreter-Tools konvertieren in Python-Code. In diesem Anwendungsfall möchten Sie die Lösung des Assistenten für Mathematikprobleme mit einer speziellen Bibliothek wie Sympy oder Numpy überprüfen
Diese Informationen werden aus der OpenAi-Bibliothek in der Python-Bibliothek Python OpenAI extrahiert
code_interpreter
, retrieval
oder function
sein.