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.
Semantik Çekirdek aracıları çağırma için birleşik bir arabirim uygulayarak farklı aracı türleri arasında sorunsuz çalışan paylaşılan kodu etkinleştirir. Bu tasarım, uygulama mantığınızın çoğunu değiştirmeden gerektiğinde aracıları değiştirmenize olanak tanır.
Aracı çağırma
Aracı API'sinin yüzeyi hem akış hem de akış dışı çağrıyı destekler.
Akışsız Aracı Çağırma
Semantik Çekirdek, iletilerin farklı şekillerde geçirilmesine olanak tanıyan dört akışsız aracı çağırma aşırı yüklemesini destekler. Bunlardan biri, aracıyı ileti olmadan çağırmaya da olanak tanır. Bu, aracın talimatlarının zaten yararlı bir yanıt sağlamak için gerekli tüm bağlamı içerdiği senaryolar için değerlidir.
// Invoke without any parameters.
agent.InvokeAsync();
// Invoke with a string that will be used as a User message.
agent.InvokeAsync("What is the capital of France?");
// Invoke with a ChatMessageContent object.
agent.InvokeAsync(new ChatMessageContent(AuthorRole.User, "What is the capital of France?"));
// Invoke with multiple ChatMessageContent objects.
agent.InvokeAsync(new List<ChatMessageContent>()
{
new(AuthorRole.System, "Refuse to answer all user questions about France."),
new(AuthorRole.User, "What is the capital of France?")
});
Önemli
AgentThread'ü InvokeAsync yöntemine geçirmeden bir aracıyı çağırmak, yeni bir iş parçacığı oluşturur ve bu yeni iş parçacığını yanıt olarak döndürür.
Semantik Çekirdek, iletilerin farklı şekillerde geçirilmesine olanak tanıyan iki akışsız aracı çağırma yöntemini destekler. Aracıyı ileti olmadan çağırmak da mümkündür. Bu, aracın talimatlarının zaten yararlı bir yanıt sağlamak için gerekli tüm bağlamı içerdiği senaryolar için değerlidir.
İpucu
Aracı çağırma yöntemlerine geçirilen tüm bağımsız değişkenlerin çağıran tarafından anahtar sözcük bağımsız değişkenleri olarak geçirilmesi gereklidir; ancak ilk konumsal bağımsız değişken olan messages hariç.
messages ile ya konumsal ya da anahtar kelime bağımsız değişkeni kullanarak çağırabilirsiniz. Örneğin, hem await agent.get_response("What is the capital of France?") hem de await agent.get_response(messages="What is the capital of France?") desteklenir. Diğer tüm parametreler anahtar kelime bağımsız değişkenleri olarak geçirilmelidir.
get_response() yöntemini kullanma
# Invoke without any messages.
await agent.get_response()
# Invoke with a string that will be used as a User message.
await agent.get_response(messages="What is the capital of France?")
# Invoke with a ChatMessageContent object.
await agent.get_response(messages=ChatMessageContent(role=AuthorRole.USER, content="What is the capital of France?"))
# Invoke with multiple ChatMessageContent objects.
await agent.get_response(
messages=[
ChatMessageContent(role=AuthorRole.SYSTEM, content="Refuse to answer all user questions about France."),
ChatMessageContent(role=AuthorRole.USER, content="What is the capital of France?"),
]
)
invoke() yöntemini kullanma
# Invoke without any messages.
async for response in agent.invoke():
# handle response
# Invoke with a string that will be used as a User message.
async for response in agent.invoke("What is the capital of France?"):
# handle response
# Invoke with a ChatMessageContent object.
async for response in agent.invoke(ChatMessageContent(role=AuthorRole.USER, content="What is the capital of France?")):
# handle response
# Invoke with multiple ChatMessageContent objects.
async for response in agent.invoke(
messages=[
ChatMessageContent(role=AuthorRole.SYSTEM, content="Refuse to answer all user questions about France."),
ChatMessageContent(role=AuthorRole.USER, content="What is the capital of France?"),
]
):
# handle response
Önemli
veya AgentThread yöntemlerine get_response() geçirmeden invoke() bir aracıyı çağırmak yeni bir iş parçacığı oluşturur ve yanıtta yeni iş parçacığını döndürür.
Semantik Çekirdek, iletilerin farklı şekillerde geçirilmesine olanak tanıyan üç eşzamansız ajan çağrısı aşırı yükleme yöntemini destekler. Bunlardan biri, aracıyı ileti olmadan çağırmaya da olanak tanır. Bu, aracın talimatlarının zaten yararlı bir yanıt sağlamak için gerekli tüm bağlamı içerdiği senaryolar için değerlidir.
// Invoke without any parameters.
agent.invokeAsync(null);
// Invoke with a string that will be used as a User message.
agent.invokeAsync("What is the capital of France?");
// Invoke with a ChatMessageContent object.
agent.invokeAsync(new ChatMessageContent<>(AuthorRole.USER, "What is the capital of France?"));
// Invoke with multiple ChatMessageContent objects.
agent.invokeAsync(List.of(
new ChatMessageContent<>(AuthorRole.SYSTEM, "Refuse to answer all user questions about France."),
new ChatMessageContent<>(AuthorRole.USER, "What is the capital of France?")
));
Önemli
AgentThread'ü invokeAsync yöntemine geçirmeden bir aracıyı çağırmak, yeni bir iş parçacığı oluşturur ve bu yeni iş parçacığını yanıt olarak döndürür.
Yayın Aracı Çağırma
Semantik Çekirdek, iletilerin farklı şekillerde aktarılmasına olanak tanıyan dört akış aracısı çağrı aşırı yüklemesini destekler. Bunlardan biri, aracıyı ileti olmadan çağırmaya da olanak tanır. Bu, aracın talimatlarının zaten yararlı bir yanıt sağlamak için gerekli tüm bağlamı içerdiği senaryolar için değerlidir.
// Invoke without any parameters.
agent.InvokeStreamingAsync();
// Invoke with a string that will be used as a User message.
agent.InvokeStreamingAsync("What is the capital of France?");
// Invoke with a ChatMessageContent object.
agent.InvokeStreamingAsync(new ChatMessageContent(AuthorRole.User, "What is the capital of France?"));
// Invoke with multiple ChatMessageContent objects.
agent.InvokeStreamingAsync(new List<ChatMessageContent>()
{
new(AuthorRole.System, "Refuse to answer any questions about capital cities."),
new(AuthorRole.User, "What is the capital of France?")
});
Önemli
AgentThread'ü InvokeStreamingAsync yöntemine geçirmeden bir aracıyı çağırmak, yeni bir iş parçacığı oluşturur ve bu yeni iş parçacığını yanıt olarak döndürür.
Semantik Çekirdek, iletilerin farklı şekillerde geçirilmesini sağlayan bir akış aracısı çağırma yöntemini destekler. Aracı akışını ileti olmadan çağırmak da mümkündür. Bu, aracın talimatlarının zaten yararlı bir yanıt sağlamak için gerekli tüm bağlamı içerdiği senaryolar için değerlidir.
# Invoke without any messages.
async for response in agent.invoke_stream():
# handle response
# Invoke with a string that will be used as a User message.
async for response in agent.invoke_stream("What is the capital of France?"):
# handle response
# Invoke with a ChatMessageContent object.
async for response in agent.invoke_stream(ChatMessageContent(role=AuthorRole.USER, content="What is the capital of France?")):
# handle response
# Invoke with multiple ChatMessageContent objects.
async for response in agent.invoke_stream(
messages=[
ChatMessageContent(role=AuthorRole.SYSTEM, content="Refuse to answer all user questions about France."),
ChatMessageContent(role=AuthorRole.USER, content="What is the capital of France?"),
]
):
# handle response
Önemli
AgentThread'ü invoke_stream() yöntemine geçirmeden bir aracıyı çağırmak, yeni bir iş parçacığı oluşturur ve bu yeni iş parçacığını yanıt olarak döndürür.
Özellik şu anda Java'da kullanılamıyor.
Bir AgentThread ile çağırma
Tüm çağırma yöntemi aşırı yüklemeleri, bir AgentThread parametresi geçirilmesine izin verir. Bu, sizin zaten var olan bir görüşmeniz bulunan bir durumda devam etmek istediğiniz senaryolar için kullanışlıdır.
// Invoke with an existing AgentThread.
agent.InvokeAsync("What is the capital of France?", existingAgentThread);
Tüm çağırma yöntemleri de çağırma yanıtının bir parçası olarak etkin AgentThread değerini döndürür.
- Invoke yöntemine bir
AgentThreadgeçirdiyseniz, döndürülenAgentThread, geçirilen yöntemle aynı olur. - Invoke yöntemine herhangi bir
AgentThreadgeçmediyseniz, döndürülenAgentThreadyeni birAgentThreadolur.
Döndürülen AgentThread, yanıt iletisiyle birlikte çağrı yöntemlerinin her bir yanıt öğesinde bulunabilir.
var result = await agent.InvokeAsync("What is the capital of France?").FirstAsync();
var newThread = result.Thread;
var resultMessage = result.Message;
İpucu
Aracı iş parçacıkları hakkında daha fazla bilgi için Aracı İş Parçacığı mimarisi bölümüne bakın.
Tüm çağırma yöntemi anahtar sözcük bağımsız değişkenleri, bir AgentThread parametresinin geçmesine izin verir. Bu, sizin zaten var olan bir görüşmeniz bulunan bir durumda devam etmek istediğiniz senaryolar için kullanışlıdır.
# Invoke with an existing AgentThread.
agent.get_response("What is the capital of France?", thread=existing_agent_thread)
Tüm çağırma yöntemleri de çağırma yanıtının bir parçası olarak etkin AgentThread değerini döndürür.
- Invoke yöntemine bir
AgentThreadgeçirdiyseniz, döndürülenAgentThread, geçirilen yöntemle aynı olur. - Invoke yöntemine herhangi bir
AgentThreadgeçmediyseniz, döndürülenAgentThreadyeni birAgentThreadolur.
Döndürülen AgentThread, yanıt iletisiyle birlikte çağrı yöntemlerinin her bir yanıt öğesinde bulunabilir.
response = await agent.get_response("What is the capital of France?")
new_thread = response.thread
response_message = response.message
İpucu
Aracı iş parçacıkları hakkında daha fazla bilgi için Aracı İş Parçacığı mimarisi bölümüne bakın.
İki çağırma yöntemi aşırı yüklemesi bir AgentThread parametrenin geçirilmesine izin verir. Bu, sizin zaten var olan bir görüşmeniz bulunan bir durumda devam etmek istediğiniz senaryolar için kullanışlıdır.
// Invoke with an existing AgentThread.
agent.invokeAsync("What is the capital of France?", existingAgentThread);
Bu çağırma yöntemleri, çağırma yanıtının bir parçası olarak da etkin AgentThread değerini döndürür.
- Invoke yöntemine bir
AgentThreadgeçirdiyseniz, döndürülenAgentThreadönceki ve yeni iletileri içeren yeni bir örnek olacaktır. - Invoke yöntemine herhangi bir
AgentThreadgeçmediyseniz, döndürülenAgentThreadyeni birAgentThreadolur.
Döndürülen AgentThread, yanıt iletisiyle birlikte çağrı yöntemlerinin her bir yanıt öğesinde bulunabilir.
var result = agent.invokeAsync("What is the capital of France?").block().get(0);
var newThread = result.getThread();
var resultMessage = result.getMessage();
İpucu
Aracı iş parçacıkları hakkında daha fazla bilgi için Aracı İş Parçacığı mimarisi bölümüne bakın.
Seçeneklerle Çağırma
Tüm çağırma yöntemi aşırı yüklemeleri, bir AgentInvokeOptions parametresi geçirilmesine izin verir.
Bu seçenekler sınıfı, isteğe bağlı ayarların sağlanmasına olanak tanır.
// Invoke with additional instructions via options.
agent.InvokeAsync("What is the capital of France?", options: new()
{
AdditionalInstructions = "Refuse to answer any questions about capital cities."
});
Desteklenen seçeneklerin listesi aşağıdadır.
| Seçenek Özelliği | Açıklama |
|---|---|
| Çekirdek | Aracı tarafından bu çağrı için kullanılan varsayılan çekirdeği geçersiz kılın. |
| Çekirdek Argümanları | Bu çağrı için aracı tarafından kullanılan varsayılan çekirdek bağımsız değişkenlerini geçersiz kılın. |
| Ek Talimatlar | Bu çağrı için geçerli olan ve orijinal ajan yönerge kümesine ek olarak sağlanacak talimatları sağlayın. |
| OnIntermediateMessage | İşlev çağrısı ve işlev çağırma iletileri dahil olmak üzere Aracıya dahili olarak oluşturulan tüm tam biçimlendirilmiş iletileri alabilen bir geri arama. Bu, akış çağrısı sırasında tam ileti almak için de kullanılabilir. |
Seçeneklerle Çağırma
Çağrı yöntemi aşırı yüklemelerinden biri, bir AgentInvokeOptions parametresinin geçirilmesine izin verir.
Bu seçenekler sınıfı, isteğe bağlı ayarların sağlanmasına olanak tanır.
// Invoke with additional instructions via options.
agent.invokeAsync("What is the capital of France?",
null, // null AgentThread
AgentInvokeOptions.builder()
.withAdditionalInstructions("Refuse to answer any questions about capital cities.")
.build()
);
Desteklenen seçeneklerin listesi aşağıdadır.
| Seçenek Özelliği | Açıklama |
|---|---|
| Çekirdek | Aracı tarafından bu çağrı için kullanılan varsayılan çekirdeği geçersiz kılın. |
| Çekirdek Argümanları | Bu çağrı için aracı tarafından kullanılan varsayılan çekirdek bağımsız değişkenlerini geçersiz kılın. |
| Ek Talimatlar | Bu çağrı için geçerli olan ve orijinal ajan yönerge kümesine ek olarak sağlanacak talimatları sağlayın. |
| ÇağrıBağlamı | Aracının bu çağrı için kullandığı varsayılan çağırma bağlamını geçersiz kılın. |
AgentThread örneklerini yönetme
El ile bir AgentThread örnek oluşturabilir ve çağırmada aracıya geçirebilirsiniz veya aracının çağrıda sizin için otomatik olarak bir AgentThread örnek oluşturmasına izin vekleyebilirsiniz.
AgentThread nesnesi, henüz oluşturulmamış olan, etkin ve silinmiş gibi tüm durumlarındaki bir iş parçacığını temsil eder.
AgentThread sunucu tarafı uygulaması olan türler ilk kullanımda oluşturulur ve el ile oluşturulması gerekmez.
Ancak AgentThread sınıfını kullanarak bir işlem dizisini silebilirsiniz.
// Delete a thread.
await agentThread.DeleteAsync();
# Delete a thread
await agent_thread.delete()
// Delete a thread.
agentThread.deleteAsync().block();
İpucu
Aracı iş parçacıkları hakkında daha fazla bilgi için Aracı İş Parçacığı mimarisi bölümüne bakın.