Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie leert u hoe u een agent maakt en uitvoert met Agent Framework, op basis van de Azure OpenAI Chat Completion-service.
Belangrijk
Agent Framework ondersteunt veel verschillende typen agents. In deze zelfstudie wordt een agent gebruikt op basis van een Chat Completion-dienst, maar alle andere agenttypen worden op dezelfde manier uitgevoerd. Zie de gebruikershandleiding voor Agent Framework voor meer informatie over andere agenttypen en hoe u deze samenwerkt.
Vereiste voorwaarden
Zorg ervoor dat u aan de volgende vereisten voldoet voordat u begint:
- .NET 8.0 SDK of hoger
- Azure OpenAI-service-eindpunt en -implementatie geconfigureerd
- Azure CLI geïnstalleerd en geverifieerd (voor Azure-referentieverificatie)
-
De gebruiker heeft de
Cognitive Services OpenAI UserofCognitive Services OpenAI Contributorrollen voor de Azure OpenAI-resource.
Opmerking
Microsoft Agent Framework wordt ondersteund met alle actief ondersteunde versies van .NET. Voor dit voorbeeld raden we de .NET 8 SDK of een latere versie aan.
Belangrijk
In deze zelfstudie wordt Azure OpenAI gebruikt voor de chatvoltooiingsservice, maar u kunt elke deductieservice gebruiken die een IChatClient implementatie biedt.
NuGet-pakketten installeren
Als u Microsoft Agent Framework wilt gebruiken met Azure OpenAI, moet u de volgende NuGet-pakketten installeren:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
De agent maken
- Maak eerst een client voor Azure OpenAI door het Azure OpenAI-eindpunt op te geven en dezelfde aanmelding te gebruiken als u hebt gebruikt bij verificatie met de Azure CLI in de stap Vereisten .
- Haal vervolgens een chatclient op voor communicatie met de chatvoltooiingsservice, waar u ook de specifieke modelimplementatie opgeeft die moet worden gebruikt. Gebruik een van de implementaties die u hebt gemaakt in de stap Vereisten .
- Maak tot slot de agent, geef instructies en een naam voor de agent op.
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");
De agent uitvoeren
Als u de agent wilt uitvoeren, roept u de RunAsync methode aan op de agentinstantie en geeft u de gebruikersinvoer op.
De agent retourneert een AgentRunResponse object, en door het aanroepen van .ToString() of .Text op dit antwoordobject wordt het tekstresultaat van de agent gegeven.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Voorbeelduitvoer:
Why did the pirate go to school?
Because he wanted to improve his "arrr-ticulation"! 🏴☠️
De agent uitvoeren met streaming
Als u de agent wilt uitvoeren met streaming, roept u de RunStreamingAsync-methode aan op de agentinstantie en verstrekt u de gebruikersinvoer.
De agent retourneert een stroom van objecten AgentRunResponseUpdate en het aanroepen van .ToString() of .Text op elk update-object levert het deel van het tekstresultaat dat in die update is opgenomen.
await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
Console.WriteLine(update);
}
Voorbeelduitvoer:
Why
did
the
pirate
go
to
school
?
To
improve
his
"
ar
rrrr
rr
tic
ulation
!"
De agent draaien met ChatMessages
In plaats van een eenvoudige tekenreeks kunt u ook een of meer ChatMessage objecten voor de RunAsync en RunStreamingAsync methoden opgeven.
Hier volgt een voorbeeld met één gebruikersbericht:
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));
Voorbeelduitvoer:
Why did the clown bring a bottle of sparkling water to the show?
Because he wanted to make a splash!
Hier volgt een voorbeeld met een systeem- en gebruikersbericht:
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]));
Voorbeelduitvoer:
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 deze zelfstudie leert u hoe u een agent maakt en uitvoert met Agent Framework, op basis van de Azure OpenAI Chat Completion-service.
Belangrijk
Agent Framework ondersteunt veel verschillende typen agents. In deze zelfstudie wordt een agent gebruikt op basis van een Chat Completion-dienst, maar alle andere agenttypen worden op dezelfde manier uitgevoerd. Zie de gebruikershandleiding voor Agent Framework voor meer informatie over andere agenttypen en hoe u deze samenwerkt.
Vereiste voorwaarden
Zorg ervoor dat u aan de volgende vereisten voldoet voordat u begint:
- Python 3.10 of hoger
- Azure OpenAI-service-eindpunt en -implementatie geconfigureerd
- Azure CLI geïnstalleerd en geverifieerd (voor Azure-referentieverificatie)
-
De gebruiker heeft de
Cognitive Services OpenAI UserofCognitive Services OpenAI Contributorrollen voor de Azure OpenAI-resource.
Belangrijk
In deze zelfstudie wordt Azure OpenAI gebruikt voor de chatvoltooiingsservice, maar u kunt elke deductieservice gebruiken die compatibel is met het chatclientprotocol van Agent Framework.
Python-pakketten installeren
Als u Microsoft Agent Framework wilt gebruiken met Azure OpenAI, moet u de volgende Python-pakketten installeren:
pip install agent-framework --pre
De agent maken
- Maak eerst een chatclient voor communicatie met Azure OpenAI en gebruik dezelfde aanmelding als u hebt gebruikt bij het verifiëren met de Azure CLI in de stap Vereisten .
- Maak vervolgens de agent, geef instructies en een naam voor de agent op.
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"
)
De agent uitvoeren
Als u de agent wilt uitvoeren, roept u de run methode aan op de agentinstantie en geeft u de gebruikersinvoer op.
De agent retourneert een antwoordobject en als u de .text eigenschap opent, krijgt u het tekstresultaat van de agent.
async def main():
result = await agent.run("Tell me a joke about a pirate.")
print(result.text)
asyncio.run(main())
De agent uitvoeren met streaming
Als u de agent wilt uitvoeren met streaming, roept u de run_stream-methode aan op de agentinstantie en verstrekt u de gebruikersinvoer.
De agent verzendt een lijst met updateobjecten en door de .text eigenschap van ieder updateobject te benaderen, verkrijgt u het deel van het tekstresultaat dat in die update is opgenomen.
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())
De agent uitvoeren met een ChatMessage
In plaats van een eenvoudige tekenreeks kunt u ook een of meer ChatMessage objecten voor de run en run_stream methoden opgeven.
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())