Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğreticide, Agent Framework kullanarak yapay zeka aracılarını iş akışlarıyla tümleştirme gösterilmektedir. İçerik oluşturma, gözden geçirme ve diğer işbirliğine dayalı görevler için özelleştirilmiş yapay zeka aracılarının gücünden yararlanan iş akışları oluşturmayı öğreneceksiniz.
Neler Oluşturacaksınız
Şu şekilde bir iş akışı oluşturacaksınız:
- Akıllı aracılar oluşturmak için Azure Foundry Agent Hizmetini kullanır
- Girişi Fransızcaya çeviren bir Fransızca çeviri aracısı uygular
- Fransızcayı İspanyolcaya çeviren bir İspanyolca çeviri aracısı uygular
- İspanyolcayı İngilizceye çeviren bir İngilizce çeviri aracısı uygular
- Aracıları sıralı iş akışı işlem hattına bağlar
- Aracılar istekleri işlerken gerçek zamanlı güncelleştirmelerin akışını sağlar
- Azure Foundry aracıları için doğru kaynak temizlemeyi gösterir
Ele Alınan Kavramlar
Önkoşullar
- .NET 8.0 SDK veya üzeri
- Azure Foundry proje uç noktası ve modeli yapılandırılmış
- Azure CLI yüklü ve oturum açılmış (Azure kimlik bilgisi kimlik doğrulaması için)
- Yeni bir konsol uygulaması
1. Adım: NuGet paketlerini yükleme
İlk olarak, .NET projeniz için gerekli paketleri yükleyin:
dotnet add package Azure.AI.Projects --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.Foundry --prerelease
dotnet add package Microsoft.Agents.AI.Workflows --prerelease
2. Adım: Azure Foundry İstemcisi'nin ayarlanması
Azure Foundry istemcisini ortam değişkenleri ve kimlik doğrulaması ile yapılandırın:
using Azure.AI.Projects;
using Azure.AI.Projects.Agents;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Foundry;
using Microsoft.Agents.AI.Workflows;
using Microsoft.Extensions.AI;
public static class Program
{
private static async Task Main()
{
// Set up the Azure AI Project client
var endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT")
?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
var aiProjectClient = new AIProjectClient(new Uri(endpoint), new AzureCliCredential());
3. Adım: Agent Factory Yöntemi Oluşturma
Belirli yönergelerle Azure Foundry aracıları oluşturmak için bir yardımcı yöntemi uygulayın:
/// <summary>
/// Creates a translation agent for the specified target language.
/// </summary>
/// <param name="targetLanguage">The target language for translation</param>
/// <param name="aiProjectClient">The AIProjectClient to create the agent</param>
/// <param name="model">The model to use for the agent</param>
/// <returns>A ChatClientAgent configured for the specified language</returns>
private static async Task<ChatClientAgent> GetTranslationAgentAsync(
string targetLanguage,
AIProjectClient aiProjectClient,
string model)
{
string agentName = $"{targetLanguage} Translator";
var version = await aiProjectClient.AgentAdministrationClient.CreateAgentVersionAsync(
agentName,
new ProjectsAgentVersionCreationOptions(
new DeclarativeAgentDefinition(model)
{
Instructions = $"You are a translation assistant that translates the provided text to {targetLanguage}."
}));
return aiProjectClient.AsAIAgent(version);
}
}
4. Adım: Özelleştirilmiş Azure Döküm Aracıları Oluşturma
Yardımcı yöntemini kullanarak üç çeviri aracısı oluşturun:
// Create agents
AIAgent frenchAgent = await GetTranslationAgentAsync("French", aiProjectClient, deploymentName);
AIAgent spanishAgent = await GetTranslationAgentAsync("Spanish", aiProjectClient, deploymentName);
AIAgent englishAgent = await GetTranslationAgentAsync("English", aiProjectClient, deploymentName);
5. Adım: İş Akışını Oluşturma
WorkflowBuilder'ı kullanarak aracıları sıralı bir iş akışına bağlayın:
// Build the workflow by adding executors and connecting them
var workflow = new WorkflowBuilder(frenchAgent)
.AddEdge(frenchAgent, spanishAgent)
.AddEdge(spanishAgent, englishAgent)
.Build();
6. Adım: Akışla Yürütme
Tüm aracılardan gerçek zamanlı güncelleştirmeleri gözlemlemek için akışla iş akışını çalıştırın:
// Execute the workflow
await using StreamingRun run = await InProcessExecution.RunStreamingAsync(workflow, new ChatMessage(ChatRole.User, "Hello World!"));
// Must send the turn token to trigger the agents.
// The agents are wrapped as executors. When they receive messages,
// they will cache the messages and only start processing when they receive a TurnToken.
await run.TrySendMessageAsync(new TurnToken(emitEvents: true));
await foreach (WorkflowEvent evt in run.WatchStreamAsync())
{
if (evt is AgentResponseUpdateEvent executorComplete)
{
Console.WriteLine($"{executorComplete.ExecutorId}: {executorComplete.Data}");
}
}
7. Adım: Kaynak Temizleme
Kullanımdan sonra Azure Foundry aracılarını düzgün bir şekilde temizleyin:
// Cleanup the agents created for the sample.
await aiProjectClient.AgentAdministrationClient.DeleteAgentAsync(frenchAgent.Id);
await aiProjectClient.AgentAdministrationClient.DeleteAgentAsync(spanishAgent.Id);
await aiProjectClient.AgentAdministrationClient.DeleteAgentAsync(englishAgent.Id);
}
Nasıl Çalışır?
-
Azure Foundry İstemci Kurulumu: Kimlik doğrulaması için Azure CLI kimlik bilgileriyle birlikte kullanılır
AIProjectClient - Aracı Oluşturma: Azure Foundry'de belirli çeviri yönergeleriyle sürüm oluşturulmuş aracılar oluşturur
- Sıralı İşleme: Fransızca aracısı önce girişi, ardından İspanyolca aracıyı, sonra İngilizce aracıyı çevirir
-
Belirteç Desenini Çevir: Aracılar iletileri önbelleğe alır ve yalnızca bir ileti aldığında işler
TurnToken -
Akış Güncelleştirmeleri:
AgentResponseUpdateEventAracılar yanıt oluştururken gerçek zamanlı belirteç güncelleştirmeleri sağlar - Kaynak Yönetimi: Yönetim API'sini kullanarak Azure Foundry aracılarının düzgün temizlenmesi
Önemli Kavramlar
- Azure Foundry Agent Hizmeti: Gelişmiş mantık özelliklerine sahip bulut tabanlı yapay zeka aracıları
- AIProjectClient: Azure Foundry'de aracı oluşturma ve yönetme istemcisi
-
WorkflowEvent: Çıkış olayları (
type="output") aracı çıkış verilerini içerir (AgentResponseUpdateakış için,AgentResponseakış dışı veriler için) - TurnToken: İleti önbelleğe aldıktan sonra aracı işlemeyi tetikleyen sinyal
- Sıralı İş Akışı: Çıkışların bir işlem hattından diğerine aktığı bir işlem hattına bağlı aracılar
Uygulamayı Tamamla
Bu Azure Foundry aracıları iş akışının tam çalışma uygulaması için Agent Framework deposundaki FoundryAgent Program.cs örneğine bakın.
Neler Oluşturacaksınız
Şu şekilde bir iş akışı oluşturacaksınız:
-
FoundryChatClientkullanarak akıllı aracılar oluşturur - İstemlere göre içerik oluşturan bir Yazıcı etkeni oluşturur
- İçerik hakkında geri bildirim sağlayan bir Gözden Geçiren aracısı uygular
- Aracıları sıralı iş akışı işlem hattına bağlar
- Aracılar istekleri işlerken gerçek zamanlı güncelleştirmelerin akışını sağlar
Ele Alınan Kavramlar
Önkoşullar
- Python 3.10 veya üzeri
- Agent Framework yüklendi:
pip install agent-framework - Uygun ortam değişkenleriyle yapılandırılmış Azure OpenAI Yanıtları
- Azure CLI kimlik doğrulaması:
az login
1. Adım: Gerekli Bağımlılıkları İçeri Aktarma
İş akışları ve Azure OpenAI Yanıtları aracıları için gerekli bileşenleri içeri aktararak başlayın:
import asyncio
import os
from agent_framework import AgentResponseUpdate, WorkflowBuilder
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
2. Adım: Azure OpenAI Yanıt İstemcisi Oluşturma
Birden çok aracı oluşturmak için kullanabileceğiniz bir paylaşılan istemci oluşturun:
async def main() -> None:
client = FoundryChatClient(
project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
model=os.environ["FOUNDRY_MODEL"],
credential=AzureCliCredential(),
)
3. Adım: Özel Aracılar Oluşturma
İçerik oluşturmak ve gözden geçirmek için iki özel aracı oluşturun:
# Create a Writer agent that generates content
writer_agent = client.as_agent(
name="Writer",
instructions=(
"You are an excellent content writer. You create new content and edit contents based on the feedback."
),
)
# Create a Reviewer agent that provides feedback
reviewer_agent = client.as_agent(
name="Reviewer",
instructions=(
"You are an excellent content reviewer. "
"Provide actionable feedback to the writer about the provided content. "
"Provide the feedback in the most concise manner possible."
),
)
4. Adım: İş Akışını Oluşturma
Oluşturucuyu kullanarak aracıları sıralı bir iş akışına bağlayın:
# Build the workflow with agents as executors
workflow = WorkflowBuilder(start_executor=writer_agent).add_edge(writer_agent, reviewer_agent).build()
5. Adım: Akışla Yürütme
Her iki aracıdan da gerçek zamanlı güncelleştirmeleri gözlemlemek için akışla iş akışını çalıştırın:
last_author: str | None = None
events = workflow.run("Create a slogan for a new electric SUV that is affordable and fun to drive.", stream=True)
async for event in events:
if event.type == "output" and isinstance(event.data, AgentResponseUpdate):
update = event.data
author = update.author_name
if author != last_author:
if last_author is not None:
print()
print(f"{author}: {update.text}", end="", flush=True)
last_author = author
else:
print(update.text, end="", flush=True)
6. Adım: Ana İşlevi Tamamlama
Ana işlevdeki her şeyi uygun zaman uyumsuz yürütmeyle sarmala:
if __name__ == "__main__":
asyncio.run(main())
Nasıl Çalışır?
-
İstemci Kurulumu: Kimlik doğrulaması için bir
FoundryChatClientAzure CLI kimlik bilgilerini kullanır. - Ajan Oluşturma: Aynı istemci yapılandırmasından Yazar ve Gözden Geçiren ajanları oluşturur.
- Sıralı İşleme: Yazar aracısı önce içeriği oluşturur, ardından Gözden Geçiren aracısına aktarır.
-
Akış Güncelleştirmeleri: Veri içeren
type="output"çıkış olayları (AgentResponseUpdate), aracılar yanıt oluştururken gerçek zamanlı belirteç güncelleştirmeleri sağlar.
Önemli Kavramlar
- FoundryChatClient: Tutarlı yapılandırmaya sahip iş akışı aracıları oluşturmak için kullanılan paylaşılan istemci.
-
WorkflowEvent: Çıkış olayları (
type="output") aracı çıkış verilerini içerir (AgentResponseUpdateakış için,AgentResponseakış dışı veriler için). - Sıralı İş Akışı: Çıkışların birinden diğerine aktığı bir işlem hattına bağlı aracılar.
Uygulamayı Tamamla
Tam çalışma uygulaması için bkz. Agent Framework deposundaki azure_ai_agents_streaming.py .