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.
Eşzamanlı düzenleme, birden çok aracının aynı görev üzerinde paralel olarak çalışmasını sağlar. Her bir aracı girişi bağımsız olarak işler, ve sonuçları toplanıp bir araya getirilir. Bu yaklaşım, beyin fırtınası, grup akıl yürütme veya oylama sistemleri gibi farklı perspektiflerin veya çözümlerin değerli olduğu senaryolar için uygundur.
Desen hakkında daha fazla bilgi edinmek için örneğin desenin ne zaman kullanılacağı veya desenden ne zaman kaçınılması gerektiğini öğrenmek için bkz. Eşzamanlı düzenleme.
Genel Kullanım Örnekleri
Birden çok aracı bir soruna farklı çözümler oluşturur ve yanıtları daha fazla analiz veya seçim için toplanır:
Öğrenecekler
- Farklı uzmanlığa sahip birden çok aracı tanımlama
- Bu aracıları tek bir görevde eşzamanlı çalışacak şekilde düzenleme
- Sonuçları toplama ve işleme
Temsilcilerinizi tanımlayın
Ajanlar, görevleri işleyebilen özel varlıklardır. Burada iki aracı tanımlayacağız: fizik uzmanı ve kimya uzmanı.
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.Concurrent;
using Microsoft.SemanticKernel.Agents.Runtime.InProcess;
// Create a kernel with an AI service
Kernel kernel = ...;
ChatCompletionAgent physicist = new ChatCompletionAgent{
Name = "PhysicsExpert",
Instructions = "You are an expert in physics. You answer questions from a physics perspective."
Kernel = kernel,
};
ChatCompletionAgent chemist = new ChatCompletionAgent{
Name = "ChemistryExpert",
Instructions = "You are an expert in chemistry. You answer questions from a chemistry perspective."
Kernel = kernel,
};
Eşzamanlı Düzenlemeyi Ayarlama
sınıfı, ConcurrentOrchestration birden çok aracıyı paralel olarak çalıştırmanıza olanak tanır. Ajan listesini üye olarak dahil edersiniz.
ConcurrentOrchestration orchestration = new (physicist, chemist);
Çalışma Zamanını Başlat
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();
Orchestration'ı başlat
Artık düzenlemeyi belirli bir görevle çağırabilirsiniz. Orkestrasyon, verilen görevde tüm ajanları eşzamanlı olarak çalıştırır.
var result = await orchestration.InvokeAsync("What is temperature?", runtime);
Sonuçları Topla
Tüm aracıların sonuçları eşzamansız olarak toplanabilir. Sonuç sırasının garanti edilmediğini unutmayın.
string[] output = await result.GetValueAsync(TimeSpan.FromSeconds(20));
Console.WriteLine($"# RESULT:\n{string.Join("\n\n", output.Select(text => $"{text}"))}");
İ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:
Temperature is a fundamental physical quantity that measures the average kinetic energy ...
Temperature is a measure of the average kinetic energy of the particles ...
Tavsiye
Örnek kodun tamamına buradan ulaşabilirsiniz
Temsilcilerinizi tanımlayın
Ajanlar, görevleri işleyebilen özel varlıklardır. Burada iki aracı tanımlayacağız: fizik uzmanı ve kimya uzmanı.
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]:
physics_agent = ChatCompletionAgent(
name="PhysicsExpert",
instructions="You are an expert in physics. You answer questions from a physics perspective.",
service=AzureChatCompletion(),
)
chemistry_agent = ChatCompletionAgent(
name="ChemistryExpert",
instructions="You are an expert in chemistry. You answer questions from a chemistry perspective.",
service=AzureChatCompletion(),
)
return [physics_agent, chemistry_agent]
Eşzamanlı Düzenlemeyi Ayarlama
sınıfı, ConcurrentOrchestration birden çok aracıyı paralel olarak çalıştırmanıza olanak tanır. Ajan listesini üye olarak dahil edersiniz.
from semantic_kernel.agents import ConcurrentOrchestration
agents = get_agents()
concurrent_orchestration = ConcurrentOrchestration(members=agents)
Çalışma Zamanını Başlat
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.
from semantic_kernel.agents.runtime import InProcessRuntime
runtime = InProcessRuntime()
runtime.start()
Orchestration'ı başlat
Artık düzenlemeyi belirli bir görevle çağırabilirsiniz. Orkestrasyon, verilen görevde tüm ajanları eşzamanlı olarak çalıştırır.
orchestration_result = await concurrent_orchestration.invoke(
task="What is temperature?",
runtime=runtime,
)
Sonuçları Topla
Tüm aracıların sonuçları eşzamansız olarak toplanabilir. Sonuç sırasının garanti edilmediğini unutmayın.
value = await orchestration_result.get(timeout=20)
# For the concurrent orchestration, the result is a list of chat messages
for item in value:
print(f"# {item.name}: {item.content}")
İ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ış
# PhysicsExpert: Temperature is a physical quantity that represents the average kinetic energy of the particles in a substance...
# ChemistryExpert: Temperature is a fundamental concept in chemistry and physics, representing a measure of the average kinetic energy...
Tavsiye
Örnek kodun tamamına buradan ulaşabilirsiniz.
Uyarı
Ajan düzenlemesi henüz Java SDK'de mevcut değil.