Anropa funktioner automatiskt
SDK:et för semantisk kernel stöder en kraftfull funktionsanropsfunktion. Genom att aktivera automatisk funktionsanrop kan kerneln automatiskt välja vilka funktioner och uppmaningar som ska användas på vissa angivna indata. Den här funktionen kan hjälpa dig att spara tid manuellt och anropa funktioner och uppmaningar och göra dina program smartare.
Om du vill använda automatiska funktionsanrop måste du använda en OpenAI-modell som stöder den. För närvarande innehåller dessa modeller MODELLER GPT-3.5-turbo- och GPT-4-modeller som är version 0613 eller senare.
Om du vill aktivera automatisk funktionsanrop måste du ange ToolCallBehavior
-egenskapen för OpenAIPromptExecutionSettings
objektet till AutoInvokeKernelFunctions
.
Anta till exempel att du har några ingrediens-plugin-program som stöder följande funktioner:
- `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
Du kan använda beteendet AutoInvokeKernelFunctions
för att automatiskt köra en funktion baserat på en fråga. Till exempel:
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);
Beroende på dina ingredienser och funktionsinformation kan kodens utdata likna följande svar:
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
Funktionsanrop gör att AI:n kan anropa funktioner med lämpliga parametrar i rätt ordning. LLM kan iterativt anropa funktioner för att tillgodose användarens behov. Detta görs via en feedbackloop där AI:n kan anropa en funktion, kontrollera resultatet och sedan bestämma vad som ska göras härnäst.
Inställningen AutoInvokeKernelFunctions
anropar automatiskt nödvändiga plugin-program för att köra prompten, vilket gör ditt program dynamiskt och robust med mindre kod. Den här funktionen kan hjälpa dig att skapa mer komplexa program som kan hantera en mängd olika scenarier.