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.
Önemli
Aracı Çerçevesi'ndeki Aracı Orkestrasyonu özellikleri deneysel aşamadadır. Bunlar etkin geliştirme aşamasındadır ve önizleme veya sürüm adayı aşamasına geçmeden önce önemli ölçüde değişebilir.
Sıralı düzenlemede ajanlar bir ardışık işlem hattında düzenlenir. Her bir temsilci sırayla görevi işler ve çıkışını bir sonraki sıradaki temsilciye aktarır. Bu, belge gözden geçirme, veri işleme işlem hatları veya çok aşamalı mantık gibi her adımın önceki adıma göre derlendiği iş akışları için idealdir.
Desen hakkında daha fazla bilgi edinmek için örneğin, desenin ne zaman kullanılacağı veya iş yükünüzdeki desenden ne zaman kaçınılması gerektiğini öğrenmek için bkz. Sıralı düzenleme.
Genel Kullanım Örnekleri
Belge, bir özetleme aracısını, ardından bir çeviri aracısını ve son olarak her bir önceki çıktıyı oluşturan bir kalite güvence aracısını geçirir:
Öğrenecekler
- Her biri özel bir role sahip bir aracı dizisi tanımlama
- Her birinin öncekinin çıkışını işlemesi için bu aracıları düzenleme
- Ara çıkışları gözlemleme ve nihai sonucu toplama
Temsilcilerinizi Tanımlayın
Aracılar, görevleri sırayla işleyen özel varlıklardır. Burada üç aracı tanımlayacağız: analist, metin yazarı ve düzenleyici.
Tavsiye
ChatCompletionAgent burada kullanılır, ancak herhangi bir aracı türünü kullanabilirsiniz.
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Agents;
using Microsoft.SemanticKernel.Agents.Orchestration;
using Microsoft.SemanticKernel.Agents.Orchestration.Sequential;
using Microsoft.SemanticKernel.Agents.Runtime.InProcess;
// Create a kernel with an AI service
Kernel kernel = ...;
ChatCompletionAgent analystAgent = new ChatCompletionAgent {
Name = "Analyst",
Instructions = "You are a marketing analyst. Given a product description, identify:\n- Key features\n- Target audience\n- Unique selling points",
Kernel = kernel,
};
ChatCompletionAgent writerAgent = new ChatCompletionAgent {
Name = "Copywriter",
Instructions = "You are a marketing copywriter. Given a block of text describing features, audience, and USPs, compose a compelling marketing copy (like a newsletter section) that highlights these points. Output should be short (around 150 words), output just the copy as a single text block.",
Kernel = kernel,
};
ChatCompletionAgent editorAgent = new ChatCompletionAgent {
Name = "Editor",
Instructions = "You are an editor. Given the draft copy, correct grammar, improve clarity, ensure consistent tone, give format and make it polished. Output the final improved copy as a single text block.",
Kernel = kernel,
};
İsteğe bağlı: Aracı Yanıtlarını Gözlemleme
ResponseCallback özelliği aracılığıyla sıra ilerledikçe aracı yanıtlarını yakalamak için bir geri çağırma oluşturabilirsiniz.
ChatHistory history = [];
ValueTask responseCallback(ChatMessageContent response)
{
history.Add(response);
return ValueTask.CompletedTask;
}
Sıralı Orkestrasyonu Ayarla
Aracıları ve isteğe bağlı yanıt geri çağırma işlevini kullanarak bir SequentialOrchestration nesne oluşturun.
SequentialOrchestration orchestration = new(analystAgent, writerAgent, editorAgent)
{
ResponseCallback = responseCallback,
};
Çalışma Zamanını Başlatma
Aracıların yürütülmesini yönetmek için bir çalışma zamanı gereklidir. Burada InProcessRuntime kullanıyoruz ve bunu, orkestrasyonu çağırmadan önce başlatıyoruz.
InProcessRuntime runtime = new InProcessRuntime();
await runtime.StartAsync();
Orkestrasyonu Başlat
İlk görevinizle (örneğin, bir ürün açıklaması) orkestrasyonu başlatın. Çıkış, her bir aracı sırayla geçerek devam edecektir.
var result = await orchestration.InvokeAsync(
"An eco-friendly stainless steel water bottle that keeps drinks cold for 24 hours",
runtime);
Sonuçları Topla
Orkestrasyonun tamamlanmasını bekleyin ve nihai çıktıyı alın.
string output = await result.GetValueAsync(TimeSpan.FromSeconds(20));
Console.WriteLine($"\n# RESULT: {text}");
Console.WriteLine("\n\nORCHESTRATION HISTORY");
foreach (ChatMessageContent message in history)
{
this.WriteAgentChatMessage(message);
}
İsteğe bağlı: Çalışma Zamanını Durdur
İşlem tamamlandıktan sonra kaynakları temizlemek için çalışma zamanını durdurun.
await runtime.RunUntilIdleAsync();
Örnek Çıkış
# RESULT: Introducing our Eco-Friendly Stainless Steel Water Bottles – the perfect companion for those who care about the planet while staying hydrated! Our bottles ...
ORCHESTRATION HISTORY
# Assistant - Analyst: **Key Features:**
- Made from eco-friendly stainless steel
- Insulation technology that maintains cold temperatures for up to 24 hours
- Reusable and sustainable design
- Various sizes and colors available (assumed based on typical offerings)
- Leak-proof cap
- BPA-free ...
# Assistant - copywriter: Introducing our Eco-Friendly Stainless ...
# Assistant - editor: Introducing our Eco-Friendly Stainless Steel Water Bottles – the perfect companion for those who care about the planet while staying hydrated! Our bottles ...
Tavsiye
Örnek kodun tamamına buradan ulaşabilirsiniz
Temsilcilerinizi Tanımlayın
Dizideki her etmen belirli bir sorumluluğa sahiptir. Bu örnekte şunları yaptık:
- ConceptExtractorAgent: Ürün açıklamasından önemli özellikleri, hedef kitleyi ve benzersiz satış noktalarını ayıklar.
- WriterAgent: Ayıklanan bilgilere göre bir pazarlama metni oluşturur.
- FormatProofAgent: Netlik ve tutarlılık için taslak kopyayı düzenler ve cilalar.
Tavsiye
ChatCompletionAgent burada Azure OpenAI ile kullanılır, ancak herhangi bir aracı türünü veya model hizmetini kullanabilirsiniz.
from semantic_kernel.agents import Agent, ChatCompletionAgent
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion
def get_agents() -> list[Agent]:
concept_extractor_agent = ChatCompletionAgent(
name="ConceptExtractorAgent",
instructions=(
"You are a marketing analyst. Given a product description, identify:\n"
"- Key features\n"
"- Target audience\n"
"- Unique selling points\n\n"
),
service=AzureChatCompletion(),
)
writer_agent = ChatCompletionAgent(
name="WriterAgent",
instructions=(
"You are a marketing copywriter. Given a block of text describing features, audience, and USPs, "
"compose a compelling marketing copy (like a newsletter section) that highlights these points. "
"Output should be short (around 150 words), output just the copy as a single text block."
),
service=AzureChatCompletion(),
)
format_proof_agent = ChatCompletionAgent(
name="FormatProofAgent",
instructions=(
"You are an editor. Given the draft copy, correct grammar, improve clarity, ensure consistent tone, "
"give format and make it polished. Output the final improved copy as a single text block."
),
service=AzureChatCompletion(),
)
return [concept_extractor_agent, writer_agent, format_proof_agent]
İsteğe bağlı: Aracı Yanıtlarını Gözlemleme
Dizilim süreci devam ettikçe her ajandan gelen çıkışı gözlemlemek ve yazdırmak için bir geri çağrım tanımlayabilirsiniz.
from semantic_kernel.contents import ChatMessageContent
def agent_response_callback(message: ChatMessageContent) -> None:
print(f"# {message.name}\n{message.content}")
Sıralı Orkestrasyonu Ayarla
SequentialOrchestration nesnesi, aracıları ve isteğe bağlı yanıt geri çağırmasını geçirir.
from semantic_kernel.agents import SequentialOrchestration
agents = get_agents()
sequential_orchestration = SequentialOrchestration(
members=agents,
agent_response_callback=agent_response_callback,
)
Çalışma Zamanını Başlatma
Aracı çalıştırmayı yönetmek için çalışma zamanını başlatın.
from semantic_kernel.agents.runtime import InProcessRuntime
runtime = InProcessRuntime()
runtime.start()
Orkestrasyonu Başlat
İlk görevinizle (örneğin, bir ürün açıklaması) orkestrasyonu başlatın. Çıkış, her bir aracı sırayla geçerek devam edecektir.
orchestration_result = await sequential_orchestration.invoke(
task="An eco-friendly stainless steel water bottle that keeps drinks cold for 24 hours",
runtime=runtime,
)
Sonuçları Topla
Düzenlemenin tamamlanmasını bekleyin.
value = await orchestration_result.get(timeout=20)
print(f"***** Final Result *****\n{value}")
İsteğe bağlı: Çalışma Zamanını Durdur
İşlem tamamlandıktan sonra kaynakları temizlemek için çalışma zamanını durdurun.
await runtime.stop_when_idle()
Örnek Çıkış
# ConceptExtractorAgent
- Key Features:
- Made of eco-friendly stainless steel
- Keeps drinks cold for 24 hours
...
# WriterAgent
Keep your beverages refreshingly chilled all day long with our eco-friendly stainless steel bottles...
# FormatProofAgent
Keep your beverages refreshingly chilled all day long with our eco-friendly stainless steel bottles...
***** Final Result *****
Keep your beverages refreshingly chilled all day long with our eco-friendly stainless steel bottles...
Tavsiye
Örnek kodun tamamına buradan ulaşabilirsiniz.
Uyarı
Ajan düzenlemesi henüz Java SDK'de mevcut değil.