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 geçiş kılavuzu, planlama özelliği için önerilen yeni bir yaklaşıma geçiş işleminin nasıl yapılacağını FunctionCallingStepwisePlanner gösterir: Otomatik İşlev Çağrısı. Yeni yaklaşım sonuçları daha güvenilir bir şekilde üretir ve ile FunctionCallingStepwisePlannerkarşılaştırıldığında daha az belirteç kullanır.
Plan oluşturma
Aşağıdaki kod kullanılarak Otomatik İşlev Çağrısı FunctionChoiceBehavior = FunctionChoiceBehavior.Auto()ile yeni bir planın nasıl oluşturulacağı gösterilmektedir. Yapay zeka modeline bir istek gönderdikten sonra plan, ChatHistory nesnesinde bulunur; burada Assistant rolüne sahip bir ileti, çağrılacak fonksiyonların (adımların) bir listesini içerir.
Eski yaklaşım:
Kernel kernel = Kernel
.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4", Environment.GetEnvironmentVariable("OpenAI__ApiKey"))
.Build();
FunctionCallingStepwisePlanner planner = new();
FunctionCallingStepwisePlannerResult result = await planner.ExecuteAsync(kernel, "Check current UTC time and return current weather in Boston city.");
ChatHistory generatedPlan = result.ChatHistory;
Yeni yaklaşım:
Kernel kernel = Kernel
.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4", Environment.GetEnvironmentVariable("OpenAI__ApiKey"))
.Build();
IChatCompletionService chatCompletionService = kernel.GetRequiredService<IChatCompletionService>();
ChatHistory chatHistory = [];
chatHistory.AddUserMessage("Check current UTC time and return current weather in Boston city.");
OpenAIPromptExecutionSettings executionSettings = new() { FunctionChoiceBehavior = FunctionChoiceBehavior.Auto() };
await chatCompletionService.GetChatMessageContentAsync(chatHistory, executionSettings, kernel);
ChatHistory generatedPlan = chatHistory;
Yeni planın yürütülmesi
Aşağıdaki kod, FunctionChoiceBehavior = FunctionChoiceBehavior.Auto() kullanarak Otomatik İşlev Çağrısı ile yeni bir planın nasıl yürütüleceğini gösterir. Bu yaklaşım, plan adımları olmadan yalnızca sonuç gerektiğinde kullanışlıdır. Bu durumda, InvokePromptAsync yöntemine bir hedef iletmek için Kernel nesnesi kullanılabilir. Plan yürütmenin sonucu nesnesinde FunctionResult bulunur.
Eski yaklaşım:
Kernel kernel = Kernel
.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4", Environment.GetEnvironmentVariable("OpenAI__ApiKey"))
.Build();
FunctionCallingStepwisePlanner planner = new();
FunctionCallingStepwisePlannerResult result = await planner.ExecuteAsync(kernel, "Check current UTC time and return current weather in Boston city.");
string planResult = result.FinalAnswer;
Yeni yaklaşım:
Kernel kernel = Kernel
.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4", Environment.GetEnvironmentVariable("OpenAI__ApiKey"))
.Build();
OpenAIPromptExecutionSettings executionSettings = new() { FunctionChoiceBehavior = FunctionChoiceBehavior.Auto() };
FunctionResult result = await kernel.InvokePromptAsync("Check current UTC time and return current weather in Boston city.", new(executionSettings));
string planResult = result.ToString();
Mevcut planın yürütülmesi
Aşağıdaki kod, FunctionChoiceBehavior = FunctionChoiceBehavior.Auto() kullanarak Otomatik İşlev Çağrısı ile mevcut bir planın nasıl yürütüleceğini gösterir. Bu yaklaşım zaten mevcut olduğunda ChatHistory (örneğin önbellekte depolandığında) kullanışlıdır ve yeniden yürütülmelidir ve nihai sonuç yapay zeka modeli tarafından sağlanmalıdır.
Eski yaklaşım:
Kernel kernel = Kernel
.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4", Environment.GetEnvironmentVariable("OpenAI__ApiKey"))
.Build();
FunctionCallingStepwisePlanner planner = new();
ChatHistory existingPlan = GetExistingPlan(); // plan can be stored in database or cache for reusability.
FunctionCallingStepwisePlannerResult result = await planner.ExecuteAsync(kernel, "Check current UTC time and return current weather in Boston city.", existingPlan);
string planResult = result.FinalAnswer;
Yeni yaklaşım:
Kernel kernel = Kernel
.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4", Environment.GetEnvironmentVariable("OpenAI__ApiKey"))
.Build();
IChatCompletionService chatCompletionService = kernel.GetRequiredService<IChatCompletionService>();
ChatHistory existingPlan = GetExistingPlan(); // plan can be stored in database or cache for reusability.
OpenAIPromptExecutionSettings executionSettings = new() { FunctionChoiceBehavior = FunctionChoiceBehavior.Auto() };
ChatMessageContent result = await chatCompletionService.GetChatMessageContentAsync(existingPlan, executionSettings, kernel);
string planResult = result.Content;
Aşağıdaki kod, kullanarak function_choice_behavior = FunctionChoiceBehavior.Auto()Otomatik İşlev Çağrısı ile yeni bir plan oluşturmayı gösterir. Yapay zeka modeline bir istek gönderdikten sonra plan, ChatHistory nesnesinde yer alır; burada Assistant rolüne sahip bir ileti, çağrılacak işlevlerin (adımların) bir listesini içerir.
Eski yaklaşım:
from semantic_kernel import Kernel
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion
from semantic_kernel.planners.function_calling_stepwise_planner import (
FunctionCallingStepwisePlanner,
FunctionCallingStepwisePlannerResult,
)
kernel = Kernel()
kernel.add_service(AzureChatCompletion())
# Add any plugins to the kernel that the planner will leverage
kernel.add_plugins(...)
planner = FunctionCallingStepwisePlanner(service_id="service_id")
result: FunctionCallingStepwisePlannerResult = await planner.invoke(
kernel=kernel,
question="Check current UTC time and return current weather in Boston city.",
)
generated_plan = result.chat_history
Yeni yaklaşım:
from semantic_kernel import Kernel
from semantic_kernel.connectors.ai import FunctionChoiceBehavior
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion, AzureChatPromptExecutionSettings
from semantic_kernel.contents import ChatHistory
chat_completion_service = AzureChatCompletion()
chat_history = ChatHistory()
chat_hitory.add_user_message("Check current UTC time and return current weather in Boston city.")
request_settings = AzureChatPromptExecutionSettings(function_choice_behavior=FunctionChoiceBehavior.Auto())
# Add any plugins to the kernel that the planner will leverage
kernel = Kernel()
kernel.add_plugins(...)
response = await chat_completion_service.get_chat_message_content(
chat_history=chat_history,
settings=request_settings,
kernel=kernel,
)
print(response)
# The generated plan is now contained inside of `chat_history`.
Yeni planın yürütülmesi
Aşağıdaki kod, function_choice_behavior = FunctionChoiceBehavior.Auto() kullanarak Otomatik İşlev Çağrısı ile yeni bir planın nasıl yürütüleceğini gösterir. Bu yaklaşım, plan adımları olmadan yalnızca sonuç gerektiğinde kullanışlıdır. Bu durumda, bir hedefi Kernel yöntemine geçirmek için invoke_prompt nesnesi kullanılabilir. Plan yürütmenin sonucu bir FunctionResult nesnede bulunur.
Eski yaklaşım:
from semantic_kernel import Kernel
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion
from semantic_kernel.planners.function_calling_stepwise_planner import (
FunctionCallingStepwisePlanner,
FunctionCallingStepwisePlannerResult,
)
kernel = Kernel()
kernel.add_service(AzureChatCompletion())
# Add any plugins to the kernel that the planner will leverage
kernel.add_plugins(...)
planner = FunctionCallingStepwisePlanner(service_id="service_id")
result: FunctionCallingStepwisePlannerResult = await planner.invoke(
kernel=kernel,
question="Check current UTC time and return current weather in Boston city.",
)
print(result.final_answer)
Yeni yaklaşım:
from semantic_kernel import Kernel
from semantic_kernel.connectors.ai import FunctionChoiceBehavior
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion, AzureChatPromptExecutionSettings
from semantic_kernel.contents import ChatHistory
from semantic_kernel.functions import KernelArguments
kernel = Kernel()
kernel.add_service(AzureChatCompletion())
# Add any plugins to the kernel that the planner will leverage
kernel.add_plugins(...)
chat_history = ChatHistory()
chat_hitory.add_user_message("Check current UTC time and return current weather in Boston city.")
request_settings = AzureChatPromptExecutionSettings(function_choice_behavior=FunctionChoiceBehavior.Auto())
response = await kernel.invoke_prompt(
"Check current UTC time and return current weather in Boston city.",
arguments=KernelArguments(settings=request_settings),
)
print(response)
Planlayıcılar SK Java'da mevcut değildi. Lütfen doğrudan işlev çağrılarını kullanın.
Yukarıdaki kod parçacıkları, Stepwise Planner kullanan kodunuzu Auto Function Calling kullanacak şekilde nasıl taşıyacağınızı gösterir. Sohbet tamamlama ile İşlev Çağrısı hakkında daha fazla bilgi edinin.