Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här självstudien visar hur du skapar och kör en agent med Agent Framework, baserat på tjänsten Azure OpenAI Chat Completion.
Viktigt!
Agent Framework stöder många olika typer av agenter. I den här handledningen används en agent baserad på en tjänst för chattavslutning, men alla andra agenttyper körs på samma sätt. Mer information om andra agenttyper och hur du skapar dem finns i användarhandboken för Agent Framework.
Förutsättningar
Kontrollera att du har följande förutsättningar innan du börjar:
- .NET 8.0 SDK eller senare
- Azure OpenAI-tjänstslutpunkt och distribution konfigurerad
- Azure CLI installerat och autentiserat (för autentisering med Azure-autentiseringsuppgifter)
-
Användaren har
Cognitive Services OpenAI User- ellerCognitive Services OpenAI Contributor-rollerna för Azure OpenAI-resursen.
Anmärkning
Microsoft Agent Framework stöds med alla versioner av .NET som stöds aktivt. I det här exemplet rekommenderar vi .NET 8 SDK eller en senare version.
Viktigt!
I den här självstudien används Azure OpenAI för Chat Completion-tjänsten, men du kan använda valfri inferenstjänst som tillhandahåller en IChatClient-implementering.
Installera NuGet-paket
Om du vill använda Microsoft Agent Framework med Azure OpenAI måste du installera följande NuGet-paket:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Skapa agenten
- Skapa först en klient för Azure OpenAI genom att tillhandahålla Azure OpenAI-slutpunkten och använda samma inloggning som du använde när du autentiserade med Azure CLI i steget Krav .
- Hämta sedan en chattklient för att kommunicera med chattens kompletteringstjänst, där du också anger vilken modellutplacering som ska användas. Använd en av de utbyggnader som du skapade i förutsättningarna-steget.
- Skapa slutligen agenten med instruktioner och ett namn för agenten.
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");
Köra agenten
Om du vill köra agenten anropar RunAsync du metoden på agentinstansen och anger användarens indata.
Agenten returnerar ett AgentRunResponse-objekt, och att anropa .ToString() eller .Text på detta svarsobjekt ger textresultatet från agenten.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Exempel på utdata:
Why did the pirate go to school?
Because he wanted to improve his "arrr-ticulation"! 🏴☠️
Köra agenten med strömmande data
Om du vill köra agenten med direktuppspelning anropar RunStreamingAsync du metoden på agentinstansen och anger användarens indata.
Agenten returnerar en ström av objekt AgentRunResponseUpdate, och att anropa .ToString() eller .Text på varje uppdateringsobjekt ger den del av textresultatet som finns i den uppdateringen.
await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
Console.WriteLine(update);
}
Exempel på utdata:
Why
did
the
pirate
go
to
school
?
To
improve
his
"
ar
rrrr
rr
tic
ulation
!"
Köra agenten med ChatMessages
I stället för en enkel sträng kan du också ange ett eller flera ChatMessage objekt till RunAsync metoderna och RunStreamingAsync .
Här är ett exempel med ett meddelande från en enskild användare:
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));
Exempel på utdata:
Why did the clown bring a bottle of sparkling water to the show?
Because he wanted to make a splash!
Här är ett exempel med ett system- och användarmeddelande:
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]));
Exempel på utdata:
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.
Den här självstudien visar hur du skapar och kör en agent med Agent Framework, baserat på tjänsten Azure OpenAI Chat Completion.
Viktigt!
Agent Framework stöder många olika typer av agenter. I den här handledningen används en agent baserad på en tjänst för chattavslutning, men alla andra agenttyper körs på samma sätt. Mer information om andra agenttyper och hur du skapar dem finns i användarhandboken för Agent Framework.
Förutsättningar
Kontrollera att du har följande förutsättningar innan du börjar:
- Python 3.10 eller senare
- Azure OpenAI-tjänstslutpunkt och distribution konfigurerad
- Azure CLI installerat och autentiserat (för autentisering med Azure-autentiseringsuppgifter)
-
Användaren har
Cognitive Services OpenAI User- ellerCognitive Services OpenAI Contributor-rollerna för Azure OpenAI-resursen.
Viktigt!
I den här självstudien används Azure OpenAI för tjänsten Chat Completion, men du kan använda vilken inferenstjänst som helst som är kompatibel med Agent Frameworks chattklientprotokoll.
Installera Python-paket
Om du vill använda Microsoft Agent Framework med Azure OpenAI måste du installera följande Python-paket:
pip install agent-framework
Skapa agenten
- Skapa först en chattklient för kommunikation med Azure OpenAI och använd samma inloggning som du använde när du autentiserade med Azure CLI i steget Förutsättningar .
- Skapa sedan agenten med instruktioner och ett namn för agenten.
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"
)
Köra agenten
Om du vill köra agenten anropar run du metoden på agentinstansen och anger användarens indata.
Agenten returnerar ett svarsobjekt och när du öppnar .text egenskapen visas textresultatet från agenten.
async def main():
result = await agent.run("Tell me a joke about a pirate.")
print(result.text)
asyncio.run(main())
Köra agenten med strömmande data
Om du vill köra agenten med direktuppspelning anropar run_stream du metoden på agentinstansen och anger användarens indata.
Agenten kommer att strömma en lista med uppdateringsobjekt, och genom att få tillgång till .text-egenskapen för varje uppdateringsobjekt ges den del av textresultatet som ingår i uppdateringen.
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())
Att köra agenten med en ChatMessage
I stället för en enkel sträng kan du också ange ett eller flera ChatMessage objekt till run metoderna och run_stream .
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())