Automatisches Aufrufen von Funktionen
Das semantische Kernel-SDK unterstützt ein leistungsfähiges Feature für automatische Funktionsaufrufe. Durch die Aktivierung des automatischen Funktionsaufrufs kann der Kernel automatisch auswählen, welche Funktionen und Prompts bei bestimmten Eingaben verwendet werden sollen. Diese Funktion kann Ihnen helfen, Zeit für den manuellen Aufruf von Funktionen und Prompts zu sparen und Ihre Anwendungen intelligenter zu machen.
Um automatische Funktionsaufrufe zu nutzen, müssen Sie ein OpenAI-Modell verwenden, das diese Funktion unterstützt. Derzeit sind dies die Modelle GPT-3.5-turbo und GPT-4 ab Version 0613.
Um den automatischen Funktionsaufruf zu aktivieren, müssen Sie die Eigenschaft ToolCallBehavior
des Objekts OpenAIPromptExecutionSettings
auf AutoInvokeKernelFunctions
festlegen.
Angenommen, Sie haben einige Zutaten-Plug-Ins, die die folgenden Funktionen unterstützen:
- `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
Sie können das AutoInvokeKernelFunctions
-Verhalten verwenden, um eine Funktion basierend auf einem Prompt automatisch auszuführen. Zum Beispiel:
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);
Je nach Ihren Zutaten und Funktionsdetails könnte die Ausgabe dieses Codes der folgenden Antwort ähneln:
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
Funktionsaufrufe ermöglichen es der KI, Funktionen mit den entsprechenden Parametern in der richtigen Reihenfolge aufzurufen. Das LLM kann iterativ Funktionen aufrufen, um die Anforderungen des Benutzers zu erfüllen. Dies erfolgt über eine Feedbackschleife, in der die KI eine Funktion aufrufen, das Ergebnis überprüfen und dann entscheiden kann, was als Nächstes zu tun ist.
Die Einstellung AutoInvokeKernelFunctions
ruft automatisch die erforderlichen Plug-Ins auf, um die Eingabeaufforderung auszuführen, wodurch Ihre Anwendung mit weniger Code dynamisch und robust wird. Mit diesem Feature können Sie komplexere Anwendungen erstellen, die eine Vielzahl von Szenarien verarbeiten können.