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 hizmet uç noktası ve dağıtımı yapılandırıldı
- 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.Agents.Persistent --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.AzureAI --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 System;
using System.Threading.Tasks;
using Azure.AI.Agents.Persistent;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Workflows;
using Microsoft.Extensions.AI;
public static class Program
{
private static async Task Main()
{
// Set up the Azure Foundry client
var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new Exception("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set.");
var model = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_MODEL_ID") ?? "gpt-4o-mini";
var persistentAgentsClient = new PersistentAgentsClient(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="persistentAgentsClient">The PersistentAgentsClient 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,
PersistentAgentsClient persistentAgentsClient,
string model)
{
var agentMetadata = await persistentAgentsClient.Administration.CreateAgentAsync(
model: model,
name: $"{targetLanguage} Translator",
instructions: $"You are a translation assistant that translates the provided text to {targetLanguage}.");
return await persistentAgentsClient.GetAIAgentAsync(agentMetadata.Value.Id);
}
}
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", persistentAgentsClient, model);
AIAgent spanishAgent = await GetTranslationAgentAsync("Spanish", persistentAgentsClient, model);
AIAgent englishAgent = await GetTranslationAgentAsync("English", persistentAgentsClient, model);
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.StreamAsync(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().ConfigureAwait(false))
{
if (evt is AgentRunUpdateEvent 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 persistentAgentsClient.Administration.DeleteAgentAsync(frenchAgent.Id);
await persistentAgentsClient.Administration.DeleteAgentAsync(spanishAgent.Id);
await persistentAgentsClient.Administration.DeleteAgentAsync(englishAgent.Id);
}
Nasıl Çalışır?
-
Azure Foundry İstemci Kurulumu: Kimlik doğrulaması için Azure CLI kimlik bilgileriyle birlikte kullanılır
PersistentAgentsClient - Aracı Oluşturma: Azure Foundry'de belirli çeviri yönergeleriyle kalıcı 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:
AgentRunUpdateEventAracı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ı
- PersistentAgentsClient: Azure Foundry'de aracı oluşturma ve yönetme istemcisi
- AgentRunUpdateEvent: Aracı yürütme sırasında gerçek zamanlı akış güncelleştirmeleri
- 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:
- Akıllı aracılar oluşturmak için Azure AI Agent Hizmetini kullanır
- İ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
- Azure AI istemcileri için uygun zaman uyumsuz bağlam yönetimini gösterir
Ele Alınan Kavramlar
Önkoşullar
- Python 3.10 veya üzeri
- Agent Framework yüklendi:
pip install agent-framework-azure-ai --pre - Uygun ortam değişkenleriyle yapılandırılmış Azure AI Aracısı Hizmeti
- Azure CLI kimlik doğrulaması:
az login
1. Adım: Gerekli Bağımlılıkları İçeri Aktarma
Başlangıç olarak Azure AI aracıları ve iş akışları için gerekli bileşenleri içeri aktarın:
import asyncio
from collections.abc import Awaitable, Callable
from contextlib import AsyncExitStack
from typing import Any
from agent_framework import AgentRunUpdateEvent, WorkflowBuilder, WorkflowOutputEvent
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential
2. Adım: Azure AI Agent Factory oluşturma
Azure AI aracısı oluşturmayı asenkron bağlam işleme ile yönetmek için bir yardımcı işlev oluşturun.
async def create_azure_ai_agent() -> tuple[Callable[..., Awaitable[Any]], Callable[[], Awaitable[None]]]:
"""Helper method to create an Azure AI agent factory and a close function.
This makes sure the async context managers are properly handled.
"""
stack = AsyncExitStack()
cred = await stack.enter_async_context(AzureCliCredential())
client = await stack.enter_async_context(AzureAIAgentClient(async_credential=cred))
async def agent(**kwargs: Any) -> Any:
return await stack.enter_async_context(client.create_agent(**kwargs))
async def close() -> None:
await stack.aclose()
return agent, close
3. Adım: Özelleştirilmiş Azure AI Aracıları Oluşturma
İçerik oluşturmak ve gözden geçirmek için iki özel aracı oluşturun:
async def main() -> None:
agent, close = await create_azure_ai_agent()
try:
# Create a Writer agent that generates content
writer = await 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 = await 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
Akıcı oluşturucuyu kullanarak aracıları sıralı bir iş akışına bağlayın:
# Build the workflow with agents as executors
workflow = WorkflowBuilder().set_start_executor(writer).add_edge(writer, reviewer).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_executor_id: str | None = None
events = workflow.run_stream("Create a slogan for a new electric SUV that is affordable and fun to drive.")
async for event in events:
if isinstance(event, AgentRunUpdateEvent):
# Handle streaming updates from agents
eid = event.executor_id
if eid != last_executor_id:
if last_executor_id is not None:
print()
print(f"{eid}:", end=" ", flush=True)
last_executor_id = eid
print(event.data, end="", flush=True)
elif isinstance(event, WorkflowOutputEvent):
print("\n===== Final output =====")
print(event.data)
finally:
await close()
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?
-
Azure AI İstemciSi Kurulumu: Kimlik doğrulaması için Azure CLI kimlik bilgileriyle birlikte kullanılır
AzureAIAgentClient - Agent Factory Deseni: Birden çok aracı için zaman uyumsuz bağlam yaşam döngüsünü yöneten bir fabrika işlevi oluşturur
- Sıralı İşleme: Yazıcı aracısı önce içerik oluşturur, ardından gözden geçiren aracısına geçirir
-
Akış Güncelleştirmeleri:
AgentRunUpdateEventAracılar yanıt oluştururken gerçek zamanlı belirteç güncelleştirmeleri sağlar -
Bağlam Yönetimi: Azure AI kaynaklarını
AsyncExitStackile düzgün şekilde temizleme
Önemli Kavramlar
- Azure AI Aracısı Hizmeti: Gelişmiş akıl yürütme özelliklerine sahip bulut tabanlı yapay zeka aracıları
- AgentRunUpdateEvent: Aracı yürütme sırasında gerçek zamanlı akış güncelleştirmeleri
- AsyncExitStack: Birden çok kaynak için doğru async çevre yönetimi
- Aracı Fabrikası Deseni: Paylaşılan istemci yapılandırmasıyla yeniden kullanılabilir aracı oluşturma
- 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 AI aracıları iş akışının tam çalışma uygulaması için Agent Framework deposundaki azure_ai_agents_streaming.py örneğine bakın.