Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku pokazano, jak utworzyć i uruchomić agenta za pomocą platformy Agent Framework w oparciu o usługę uzupełniania czatów platformy Azure OpenAI.
Ważne
Struktura agentów obsługuje wiele różnych typów agentów. W tym samouczku używany jest agent oparty na usłudze uzupełniania rozmów, ale wszystkie inne typy agentów działają w taki sam sposób. Aby uzyskać więcej informacji na temat innych typów agentów i sposobu ich konstruowania, zobacz Podręcznik użytkownika platformy Agent Framework.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że masz następujące wymagania wstępne:
- Pakiet .NET 8.0 SDK lub nowszy
- Skonfigurowany punkt końcowy usługi Azure OpenAI i wdrożenie
- Zainstalowany i uwierzytelniony interfejs wiersza polecenia platformy Azure(na potrzeby uwierzytelniania poświadczeń platformy Azure)
-
Użytkownik ma role
Cognitive Services OpenAI UserlubCognitive Services OpenAI Contributordla zasobu usługi Azure OpenAI.
Uwaga / Notatka
Program Microsoft Agent Framework jest obsługiwany ze wszystkimi aktywnie obsługiwanymi wersjami platformy .NET. Na potrzeby tego przykładu zalecamy zestaw .NET 8 SDK lub nowszą wersję.
Ważne
W tym samouczku jest używana usługa Azure OpenAI dla usługi uzupełniania czatów, ale możesz użyć dowolnej usługi wnioskowania, która zapewnia implementację IChatClient .
Instalowanie pakietów NuGet
Aby używać programu Microsoft Agent Framework z usługą Azure OpenAI, należy zainstalować następujące pakiety NuGet:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Tworzenie agenta
- Najpierw utwórz klienta dla usługi Azure OpenAI, podając punkt końcowy usługi Azure OpenAI i używając tego samego identyfikatora logowania, które zostało użyte podczas uwierzytelniania za pomocą interfejsu wiersza polecenia platformy Azure w kroku Wymagania wstępne .
- Następnie uzyskaj aplikację kliencką do komunikacji z serwisem uzupełniania czatu i określ konkretne wdrożenie modelu do wykorzystania. Użyj jednego z wdrożeń utworzonych w kroku Wymagania wstępne .
- Na koniec utwórz agenta, podając instrukcje i nazwę 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");
Uruchamianie agenta
Aby uruchomić agenta, wywołaj metodę RunAsync w wystąpieniu agenta, podając dane wejściowe użytkownika.
Agent zwróci obiekt AgentRunResponse, a wywołanie .ToString() lub .Text na tym obiekcie odpowiedzi dostarcza wynik tekstowy od agenta.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Przykładowe dane wyjściowe:
Why did the pirate go to school?
Because he wanted to improve his "arrr-ticulation"! 🏴☠️
Uruchamianie agenta za pomocą przesyłania strumieniowego
Aby uruchomić agenta z przesyłaniem strumieniowym, wywołaj metodę RunStreamingAsync w wystąpieniu agenta, podając dane wejściowe użytkownika.
Agent zwróci obiekty strumienia AgentRunResponseUpdate , a wywołanie .ToString() lub .Text na każdym obiekcie aktualizacji udostępnia część wyniku tekstowego zawartego w tej aktualizacji.
await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
Console.WriteLine(update);
}
Przykładowe dane wyjściowe:
Why
did
the
pirate
go
to
school
?
To
improve
his
"
ar
rrrr
rr
tic
ulation
!"
Uruchamianie agenta za pomocą funkcji ChatMessages
Zamiast prostego ciągu można również podać co najmniej jeden ChatMessage obiekt metodom RunAsync i RunStreamingAsync .
Oto przykład z pojedynczym komunikatem użytkownika:
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));
Przykładowe dane wyjściowe:
Why did the clown bring a bottle of sparkling water to the show?
Because he wanted to make a splash!
Oto przykład komunikatu systemowego i użytkownika:
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]));
Przykładowe dane wyjściowe:
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.
W tym samouczku pokazano, jak utworzyć i uruchomić agenta za pomocą platformy Agent Framework w oparciu o usługę uzupełniania czatów platformy Azure OpenAI.
Ważne
Struktura agentów obsługuje wiele różnych typów agentów. W tym samouczku używany jest agent oparty na usłudze uzupełniania rozmów, ale wszystkie inne typy agentów działają w taki sam sposób. Aby uzyskać więcej informacji na temat innych typów agentów i sposobu ich konstruowania, zobacz Podręcznik użytkownika platformy Agent Framework.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że masz następujące wymagania wstępne:
- Python w wersji 3.10 lub nowszej
- Skonfigurowany punkt końcowy usługi Azure OpenAI i wdrożenie
- Zainstalowany i uwierzytelniony interfejs wiersza polecenia platformy Azure(na potrzeby uwierzytelniania poświadczeń platformy Azure)
-
Użytkownik ma role
Cognitive Services OpenAI UserlubCognitive Services OpenAI Contributordla zasobu usługi Azure OpenAI.
Ważne
W tym samouczku jest używana usługa Azure OpenAI dla usługi uzupełniania czatów, ale możesz użyć dowolnej usługi wnioskowania zgodnej z protokołem klienta czatu platformy Agent Framework.
Instalowanie pakietów języka Python
Aby używać programu Microsoft Agent Framework z usługą Azure OpenAI, należy zainstalować następujące pakiety języka Python:
pip install agent-framework --pre
Tworzenie agenta
- Najpierw utwórz klienta czatu do komunikowania się z usługą Azure OpenAI i użyj tego samego identyfikatora logowania, którego użyto podczas uwierzytelniania za pomocą interfejsu wiersza polecenia platformy Azure w kroku Wymagania wstępne .
- Następnie utwórz agenta, podając instrukcje i nazwę 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"
)
Uruchamianie agenta
Aby uruchomić agenta, wywołaj metodę run w wystąpieniu agenta, podając dane wejściowe użytkownika.
Agent zwróci obiekt odpowiedzi, a uzyskanie dostępu do właściwości .text zapewnia wynik tekstowy od agenta.
async def main():
result = await agent.run("Tell me a joke about a pirate.")
print(result.text)
asyncio.run(main())
Uruchamianie agenta za pomocą przesyłania strumieniowego
Aby uruchomić agenta z przesyłaniem strumieniowym, wywołaj metodę run_stream w wystąpieniu agenta, podając dane wejściowe użytkownika.
Agent będzie przesyłać strumieniowo listę obiektów aktualizacji, a dostęp do właściwości .text w każdym obiekcie aktualizacji dostarcza część wyniku tekstowego zawartego w tej aktualizacji.
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())
Uruchamianie agenta za pomocą komunikatu ChatMessage
Zamiast prostego ciągu można również podać co najmniej jeden ChatMessage obiekt metodom run i 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())