Автоматичне виклику функцій
SDK semantic Kernel підтримує потужну функцію автоматичного виклику функцій. Увімкнення автоматичних викликів функцій дає змогу ядрі автоматично вибирати функції та запити на використання деяких наданих даних. Ця функція дає змогу заощадити час під час ручного виклику функцій і запитів і зробити програми розумнішими.
Щоб використовувати автоматичні виклики функцій, потрібно використовувати модель OpenAI, яка її підтримує. Наразі до цих моделей належать моделі GPT-3.5-turbo і GPT-4 версії 0613 або новішої.
Щоб увімкнути автоматичні виклики функцій, потрібно встановити для властивості ToolCallBehavior об'єкта OpenAIPromptExecutionSettingsAutoInvokeKernelFunctions.
Припустімо, наприклад, у вас є деякі компоненти plug-in інгредієнтів, які підтримують такі функції:
- `GetIngredients`: Gets a list of the user's available ingredients
- `GetRecipe`: Gets a list of ingredients for a given recipe
- `GetMissingIngredients`: Gets a list of ingredients that are missing from the user's kitchen for a given recipe
Поведінку AutoInvokeKernelFunctions можна використовувати, щоб автоматично запускати функцію на основі запиту. Наприклад:
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Connectors.OpenAI;
var builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(
"your-deployment-name",
"your-endpoint",
"your-api-key",
"deployment-model");
kernel.ImportPluginFromType<IngredientsPlugin>();
kernel.ImportPluginFromPromptDirectory("Prompts/IngredientPrompts");
// Set the ToolCallBehavior property
OpenAIPromptExecutionSettings settings = new()
{
ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions
};
string prompt = @"What ingredients am I missing from my current list of ingredients
to make a recipe for aloo jeera?";
// Use the settings to automatically invoke plugins based on the prompt
var result = await kernel.InvokePromptAsync(prompt, new(settings));
Console.WriteLine(result);
Залежно від інгредієнтів і відомостей про функцію вивід цього коду може бути схожий на таку відповідь:
Based on the list of ingredients for aloo jeera, you are missing the following items:
- Cumin seeds
- Green chilies
- Ginger
- Turmeric powder
- Red chili powder
- Coriander powder
- Fresh coriander leaves
- Salt
- Oil
Функція виклику дає змогу AI викликати функції з відповідними параметрами в правильному порядку. LLM може ітераційно викликати функції відповідно до потреб користувача. Це робиться в циклі зворотного зв'язку, де ШІ може викликати функцію, перевірити результат, а потім вирішити, що робити далі.
Параметр AutoInvokeKernelFunctions автоматично викликає необхідні плагіни для запуску запиту, що робить програму динамічною та надійною з меншим кодом. Ця функція може допомогти вам створити складніші програми, які можуть обробляти різні сценарії.