Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan migrasi ini menunjukkan cara bermigrasi dari FunctionCallingStepwisePlanner ke pendekatan baru yang direkomendasikan untuk kemampuan perencanaan - Panggilan Fungsi Otomatis. Pendekatan baru menghasilkan hasil yang lebih andal dan menggunakan lebih sedikit token dibandingkan FunctionCallingStepwisePlannerdengan .
Pembuatan rencana
Kode berikut menunjukkan cara membuat paket baru dengan Panggilan Fungsi Otomatis dengan menggunakan FunctionChoiceBehavior = FunctionChoiceBehavior.Auto(). Setelah mengirim permintaan ke model AI, paket akan berada di objek di ChatHistory mana pesan dengan Assistant peran akan berisi daftar fungsi (langkah) untuk dipanggil.
Pendekatan lama:
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;
Pendekatan baru:
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;
Eksekusi rencana baru
Kode berikut menunjukkan cara menjalankan paket baru dengan Panggilan Fungsi Otomatis dengan menggunakan FunctionChoiceBehavior = FunctionChoiceBehavior.Auto(). Pendekatan ini berguna ketika hanya hasil yang diperlukan tanpa langkah-langkah rencana. Dalam hal ini, Kernel objek dapat digunakan untuk meneruskan tujuan ke InvokePromptAsync metode. Hasil eksekusi rencana akan terletak di FunctionResult objek.
Pendekatan lama:
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;
Pendekatan baru:
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();
Eksekusi rencana yang ada
Kode berikut menunjukkan cara menjalankan paket yang ada dengan Panggilan Fungsi Otomatis dengan menggunakan FunctionChoiceBehavior = FunctionChoiceBehavior.Auto(). Pendekatan ini berguna ketika ChatHistory sudah ada (misalnya disimpan dalam cache) dan harus dijalankan kembali dan hasil akhir harus disediakan oleh model AI.
Pendekatan lama:
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;
Pendekatan baru:
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;
Kode berikut menunjukkan cara membuat rencana baru dengan Panggilan Fungsi Otomatis dengan menggunakan function_choice_behavior = FunctionChoiceBehavior.Auto(). Setelah mengirim permintaan ke model AI, paket akan berada di objek di ChatHistory mana pesan dengan Assistant peran akan berisi daftar fungsi (langkah) untuk dipanggil.
Pendekatan lama:
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
Pendekatan baru:
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`.
Eksekusi rencana baru
Kode berikut menunjukkan cara menjalankan paket baru dengan Panggilan Fungsi Otomatis dengan menggunakan function_choice_behavior = FunctionChoiceBehavior.Auto(). Pendekatan ini berguna ketika hanya hasil yang diperlukan tanpa langkah-langkah rencana. Dalam hal ini, objek Kernel dapat digunakan untuk meneruskan tujuan ke metode invoke_prompt. Hasil eksekusi rencana akan terletak di FunctionResult objek.
Pendekatan lama:
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)
Pendekatan baru:
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)
Perencana tidak tersedia di SK Java. Silakan gunakan panggilan fungsi secara langsung.
Cuplikan kode di atas menunjukkan cara memigrasikan kode Anda yang menggunakan Stepwise Planner untuk menggunakan Panggilan Fungsi Otomatis. Pelajari selengkapnya tentang Panggilan Fungsi dengan penyelesaian obrolan.