Automatické vyvolání funkcí

Dokončeno

Sada SDK sémantického jádra podporuje výkonnou funkci automatického volání. Povolení automatického volání funkce umožňuje jádru automaticky vybrat, které funkce a výzvy použít u některého zadaného vstupu. Tato funkce vám pomůže ušetřit čas ručním vyvoláním funkcí a výzev a zpřesnit vaše aplikace.

Pokud chcete používat automatické volání funkcí, musíte použít model OpenAI, který ho podporuje. Tyto modely v současné době zahrnují modely GPT-3.5-turbo a GPT-4 verze 0613 nebo novější.

Chcete-li povolit automatické volání funkce, je nutné nastavit ToolCallBehavior vlastnost objektu OpenAIPromptExecutionSettings na AutoInvokeKernelFunctions.

Předpokládejme například, že máte nějaké moduly plug-in složek, které podporují následující funkce:

- `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

Chování můžete použít AutoInvokeKernelFunctions k automatickému spuštění funkce na základě výzvy. Příklad:

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);

V závislosti na vašich složkách a podrobnostech funkce může být výstup tohoto kódu podobný následující odpovědi:

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

Volání funkce umožňuje umělé inteligenci vyvolat funkce s příslušnými parametry ve správném pořadí. LLM může iterativní volání funkcí, které řeší potřeby uživatele. To se provádí prostřednictvím smyčky zpětné vazby, kde AI může volat funkci, zkontrolovat výsledek a pak rozhodnout, co dělat dál.

Nastavení AutoInvokeKernelFunctions automaticky volá potřebné moduly plug-in ke spuštění výzvy, aby vaše aplikace byla dynamická a robustní s menším kódem. Tato funkce vám pomůže vytvořit složitější aplikace, které dokážou zpracovávat různé scénáře.