Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu se dozvíte, jak vytvořit a spustit agenta pomocí Agent Framework využívající služby dokončování chatu Azure OpenAI.
Důležité
Agent Framework podporuje mnoho různých typů agentů. V tomto kurzu se používá agent založený na službě dokončení chatu, ale všechny ostatní typy agentů se spouštějí stejným způsobem. Další informace o jiných typech agentů a o tom, jak je sestavit, naleznete v uživatelské příručce k rozhraní Agent Framework.
Požadavky
Než začnete, ujistěte se, že máte následující požadavky:
- Sada .NET 8.0 SDK nebo novější
- Konfigurace koncového bodu a nasazení služby Azure OpenAI
- Nainstalované a ověřené rozhraní příkazového řádku Azure(pro ověřování přihlašovacích údajů Azure)
- Uživatel má role
Cognitive Services OpenAI UserneboCognitive Services OpenAI Contributorpro prostředek Azure OpenAI.
Poznámka:
Rozhraní Microsoft Agent Framework je podporováno ve všech aktivně podporovaných verzích rozhraní .NET. Pro účely této ukázky doporučujeme sadu .NET 8 SDK nebo novější verzi.
Důležité
V tomto kurzu se pro službu dokončování chatu používá Azure OpenAI, ale můžete použít jakoukoli službu odvozování, která poskytuje implementaci IChatClient .
Instalace balíčků NuGet
Pokud chcete používat rozhraní Microsoft Agent Framework s Azure OpenAI, musíte nainstalovat následující balíčky NuGet:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Vytvoření agenta
- Nejprve vytvořte klienta pro Azure OpenAI tím, že poskytnete koncový bod Azure OpenAI a použijete stejné přihlášení, jaké jste použili při ověřování pomocí Azure CLI v kroku Požadavky .
- Pak získejte chatovacího klienta pro komunikaci se službou pro dokončování chatu, kde také zadáte konkrétní nasazení modelu, které se má použít. Použijte jedno z nasazení, která jste vytvořili v kroku Požadavky .
- Nakonec vytvořte agenta a zadejte pokyny a název agenta.
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");
Spuštění agenta
Pokud chcete spustit agenta, zavolejte RunAsync metodu v instanci agenta a zadejte uživatelský vstup.
Agent vrátí objekt AgentRunResponse, a zavoláním .ToString() nebo .Text na tento objekt odpovědi se získá textový výsledek od agenta.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Ukázkový výstup:
Why did the pirate go to school?
Because he wanted to improve his "arrr-ticulation"! 🏴☠️
Spuštění agenta během streamování
Pokud chcete spustit agenta se streamováním, zavolejte RunStreamingAsync metodu v instanci agenta a zadejte uživatelský vstup.
Agent vrátí objekty datového proudu AgentRunResponseUpdate a volání .ToString() nebo .Text pro každý aktualizační objekt poskytuje část výsledku textu obsaženého v této aktualizaci.
await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
Console.WriteLine(update);
}
Ukázkový výstup:
Why
did
the
pirate
go
to
school
?
To
improve
his
"
ar
rrrr
rr
tic
ulation
!"
Spuštění agenta pomocí ChatMessages
Místo jednoduchého řetězce můžete také poskytnout jeden nebo více ChatMessage objektů k RunAsync a RunStreamingAsync metodám.
Tady je příklad s jednou zprávou uživatele:
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));
Ukázkový výstup:
Why did the clown bring a bottle of sparkling water to the show?
Because he wanted to make a splash!
Tady je příklad se zprávou systému a uživatele:
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]));
Ukázkový výstup:
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.
V tomto kurzu se dozvíte, jak vytvořit a spustit agenta pomocí Agent Framework využívající služby dokončování chatu Azure OpenAI.
Důležité
Agent Framework podporuje mnoho různých typů agentů. V tomto kurzu se používá agent založený na službě dokončení chatu, ale všechny ostatní typy agentů se spouštějí stejným způsobem. Další informace o jiných typech agentů a o tom, jak je sestavit, naleznete v uživatelské příručce k rozhraní Agent Framework.
Požadavky
Než začnete, ujistěte se, že máte následující požadavky:
- Python 3.10 nebo novější
- Konfigurace koncového bodu a nasazení služby Azure OpenAI
- Nainstalované a ověřené rozhraní příkazového řádku Azure(pro ověřování přihlašovacích údajů Azure)
- Uživatel má role
Cognitive Services OpenAI UserneboCognitive Services OpenAI Contributorpro prostředek Azure OpenAI.
Důležité
Tento kurz používá Azure OpenAI pro službu dokončování chatu, ale můžete použít jakoukoli službu odvozování, která je kompatibilní s protokolem chatovacího klienta rozhraní Agent Framework.
Instalace balíčků Pythonu
Pokud chcete používat rozhraní Microsoft Agent Framework s Azure OpenAI, musíte nainstalovat následující balíčky Pythonu:
pip install agent-framework
Vytvoření agenta
- Nejprve vytvořte chatovacího klienta pro komunikaci s Azure OpenAI a použijte stejné přihlašovací jméno, jaké jste použili při ověřování pomocí Azure CLI v kroku Požadavky .
- Potom vytvořte agenta a zadejte pokyny a název agenta.
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"
)
Spuštění agenta
Pokud chcete spustit agenta, zavolejte run metodu v instanci agenta a zadejte uživatelský vstup.
Agent vrátí objekt odpovědi a přístup k vlastnosti .text poskytuje textový výsledek z agenta.
async def main():
result = await agent.run("Tell me a joke about a pirate.")
print(result.text)
asyncio.run(main())
Spuštění agenta během streamování
Pokud chcete spustit agenta se streamováním, zavolejte run_stream metodu v instanci agenta a zadejte uživatelský vstup.
Agent bude streamovat seznam aktualizačních objektů a přístup k .text vlastnosti u každého aktualizačního objektu poskytuje část textového výsledku obsaženého v této aktualizaci.
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())
Spuštění agenta pomocí ChatMessage
Místo jednoduchého řetězce můžete také poskytnout jeden nebo více ChatMessage objektů k run a run_stream metodám.
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())