Automatisch functies aanroepen
De Semantic Kernel SDK ondersteunt een krachtige functie voor het aanroepen van automatische functies. Door automatische functie-aanroepen in te schakelen, kan de kernel automatisch selecteren welke functies en prompts moeten worden gebruikt voor bepaalde opgegeven invoer. Met deze functie kunt u tijd besparen om functies en prompts handmatig aan te roepen en uw toepassingen slimmer te maken.
Als u automatische functieaanroepen wilt gebruiken, moet u een OpenAI-model gebruiken dat dit ondersteunt. Deze modellen bevatten momenteel GPT-3.5-turbo- en GPT-4-modellen die versie 0613 of hoger zijn.
Als u automatische functieaanroepen wilt inschakelen, moet u de ToolCallBehavior
eigenschap van het OpenAIPromptExecutionSettings
object instellen op AutoInvokeKernelFunctions
.
Stel dat u een aantal ingrediëntinvoegtoepassingen hebt die ondersteuning bieden voor de volgende functies:
- `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
U kunt het AutoInvokeKernelFunctions
gedrag gebruiken om automatisch een functie uit te voeren op basis van een prompt. Voorbeeld:
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);
Afhankelijk van uw ingrediënten en functiedetails kan de uitvoer van deze code vergelijkbaar zijn met het volgende antwoord:
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
Met functie-aanroepen kan de AI functies aanroepen met de juiste parameters in de juiste volgorde. De LLM kan iteratief functies aanroepen om te voldoen aan de behoeften van de gebruiker. Dit wordt gedaan via een feedbacklus waarin de AI een functie kan aanroepen, het resultaat kan controleren en vervolgens kan bepalen wat er vervolgens moet gebeuren.
De AutoInvokeKernelFunctions
instelling roept automatisch de benodigde invoegtoepassingen aan om de prompt uit te voeren, waardoor uw toepassing dynamisch en robuust wordt met minder code. Met deze functie kunt u complexere toepassingen maken die verschillende scenario's kunnen verwerken.