Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm erfahren Sie, wie Sie einen Agent mit Agent Framework basierend auf dem Azure OpenAI Chat Completion-Dienst erstellen und ausführen.
Von Bedeutung
Agent Framework unterstützt viele verschiedene Arten von Agents. In diesem Lernprogramm wird ein Agent basierend auf einem Chatabschlussdienst verwendet, aber alle anderen Agenttypen werden auf die gleiche Weise ausgeführt. Weitere Informationen zu anderen Agenttypen und deren Erstellung finden Sie im Agent Framework-Benutzerhandbuch.
Voraussetzungen
Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie beginnen:
- .NET 8.0 SDK oder höher
- Azure OpenAI-Dienstendpunkt und -Bereitstellung konfiguriert
- Installierte und authentifizierte Azure CLI (für die Azure-Anmeldeinformationsauthentifizierung)
-
Ein Benutzer hat die Rolle
Cognitive Services OpenAI Useroder die RolleCognitive Services OpenAI Contributorfür die Azure OpenAI-Ressource.
Hinweis
Microsoft Agent Framework wird mit allen aktiv unterstützten Versionen von .NET unterstützt. Für die Zwecke dieses Beispiels empfehlen wir das .NET 8 SDK oder eine höhere Version.
Von Bedeutung
In diesem Lernprogramm wird Azure OpenAI für den Chatabschlussdienst verwendet, Sie können jedoch jeden Rückschlussdienst verwenden, der eine IChatClient Implementierung bereitstellt.
Installieren von NuGet-Paketen
Um Microsoft Agent Framework mit Azure OpenAI zu verwenden, müssen Sie die folgenden NuGet-Pakete installieren:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Erstellen des Agents
- Erstellen Sie zunächst einen Client für Azure OpenAI, indem Sie den Azure OpenAI-Endpunkt bereitstellen und dieselbe Anmeldung wie bei der Authentifizierung mit der Azure CLI im Schritt "Voraussetzungen" verwenden.
- Holen Sie sich dann einen Chatclient, um mit dem Chat-Completion-Dienst zu kommunizieren, bei dem Sie auch das spezifische Modell-Deployment angeben, das verwendet werden soll. Verwenden Sie eine der Bereitstellungen, die Sie im Schritt "Voraussetzungen" erstellt haben.
- Erstellen Sie schließlich den Agent, und geben Sie Anweisungen und einen Namen für den Agent an.
using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
using OpenAI;
AIAgent agent = new AzureOpenAIClient(
new Uri("https://<myresource>.openai.azure.com"),
new AzureCliCredential())
.GetChatClient("gpt-4o-mini")
.CreateAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
Ausführen des Agenten
Rufen Sie zum Ausführen des Agents die RunAsync Methode für die Agentinstanz auf, und stellen Sie die Benutzereingabe bereit.
Der Agent gibt ein AgentRunResponse Objekt zurück, und das Aufrufen von .ToString() oder .Text auf dieses Antwortobjekt stellt das Textergebnis des Agenten bereit.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Beispielausgabe:
Why did the pirate go to school?
Because he wanted to improve his "arrr-ticulation"! 🏴☠️
Ausführen des Agents mit Streaming
Rufen Sie zum Ausführen des Agents mit Streaming die RunStreamingAsync Methode für die Agentinstanz auf, und stellen Sie die Benutzereingabe bereit.
Der Agent gibt einen Strom aus AgentRunResponseUpdate-Objekten zurück, und das Aufrufen von .ToString() oder .Text bei jedem Update-Objekt liefert den Teil des Textergebnisses, der in diesem Update enthalten ist.
await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
Console.WriteLine(update);
}
Beispielausgabe:
Why
did
the
pirate
go
to
school
?
To
improve
his
"
ar
rrrr
rr
tic
ulation
!"
Ausführen des Agents mit Chatnachrichten
Anstelle einer einfachen Zeichenfolge können Sie auch ein oder mehrere ChatMessage Objekte für die Methoden RunAsync und RunStreamingAsync bereitstellen.
Hier ist ein Beispiel für eine einzelne Benutzernachricht:
ChatMessage message = new(ChatRole.User, [
new TextContent("Tell me a joke about this image?"),
new UriContent("https://upload.wikimedia.org/wikipedia/commons/1/11/Joseph_Grimaldi.jpg", "image/jpeg")
]);
Console.WriteLine(await agent.RunAsync(message));
Beispielausgabe:
Why did the clown bring a bottle of sparkling water to the show?
Because he wanted to make a splash!
Hier ist ein Beispiel mit einer System- und Benutzernachricht:
ChatMessage systemMessage = new(
ChatRole.System,
"""
If the user asks you to tell a joke, refuse to do so, explaining that you are not a clown.
Offer the user an interesting fact instead.
""");
ChatMessage userMessage = new(ChatRole.User, "Tell me a joke about a pirate.");
Console.WriteLine(await agent.RunAsync([systemMessage, userMessage]));
Beispielausgabe:
I'm not a clown, but I can share an interesting fact! Did you know that pirates often revised the Jolly Roger flag? Depending on the pirate captain, it could feature different symbols like skulls, bones, or hourglasses, each representing their unique approach to piracy.
In diesem Lernprogramm erfahren Sie, wie Sie einen Agent mit Agent Framework basierend auf dem Azure OpenAI Chat Completion-Dienst erstellen und ausführen.
Von Bedeutung
Agent Framework unterstützt viele verschiedene Arten von Agents. In diesem Lernprogramm wird ein Agent basierend auf einem Chatabschlussdienst verwendet, aber alle anderen Agenttypen werden auf die gleiche Weise ausgeführt. Weitere Informationen zu anderen Agenttypen und deren Erstellung finden Sie im Agent Framework-Benutzerhandbuch.
Voraussetzungen
Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie beginnen:
- Python 3.10 oder höher
- Azure OpenAI-Dienstendpunkt und -Bereitstellung konfiguriert
- Installierte und authentifizierte Azure CLI (für die Azure-Anmeldeinformationsauthentifizierung)
-
Ein Benutzer hat die Rolle
Cognitive Services OpenAI Useroder die RolleCognitive Services OpenAI Contributorfür die Azure OpenAI-Ressource.
Von Bedeutung
In diesem Lernprogramm wird Azure OpenAI für den Chatabschlussdienst verwendet, Sie können jedoch einen beliebigen Rückschlussdienst verwenden, der mit dem Chatclientprotokoll von Agent Framework kompatibel ist.
Installieren von Python-Paketen
Um Microsoft Agent Framework mit Azure OpenAI zu verwenden, müssen Sie die folgenden Python-Pakete installieren:
pip install agent-framework --pre
Erstellen des Agents
- Erstellen Sie zunächst einen Chatclient für die Kommunikation mit Azure OpenAI, und verwenden Sie dieselbe Anmeldung wie bei der Authentifizierung mit der Azure CLI im Schritt "Voraussetzungen" .
- Erstellen Sie dann den Agent, und geben Sie Anweisungen und einen Namen für den Agent an.
import asyncio
from agent_framework.azure import AzureOpenAIChatClient
from azure.identity import AzureCliCredential
agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
instructions="You are good at telling jokes.",
name="Joker"
)
Ausführen des Agenten
Rufen Sie zum Ausführen des Agents die run Methode für die Agentinstanz auf, und stellen Sie die Benutzereingabe bereit.
Der Agent gibt ein Antwortobjekt zurück, und der Zugriff auf die .text Eigenschaft stellt das Textergebnis des Agents bereit.
async def main():
result = await agent.run("Tell me a joke about a pirate.")
print(result.text)
asyncio.run(main())
Ausführen des Agents mit Streaming
Rufen Sie zum Ausführen des Agents mit Streaming die run_stream Methode für die Agentinstanz auf, und stellen Sie die Benutzereingabe bereit.
Der Agent streamt eine Liste von Aktualisierungsobjekten, und der Zugriff auf die .text Eigenschaft für jedes Updateobjekt stellt den Teil des Textergebnisses bereit, das in dieser Aktualisierung enthalten ist.
async def main():
async for update in agent.run_stream("Tell me a joke about a pirate."):
if update.text:
print(update.text, end="", flush=True)
print() # New line after streaming is complete
asyncio.run(main())
Ausführen des Agents mit einer Chat-Nachricht
Anstelle einer einfachen Zeichenfolge können Sie auch ein oder mehrere ChatMessage Objekte für die Methoden run und run_stream bereitstellen.
from agent_framework import ChatMessage, TextContent, UriContent, Role
message = ChatMessage(
role=Role.USER,
contents=[
TextContent(text="Tell me a joke about this image?"),
UriContent(uri="https://samplesite.org/clown.jpg", media_type="image/jpeg")
]
)
async def main():
result = await agent.run(message)
print(result.text)
asyncio.run(main())