Funktioiden automaattinen kutsuminen
Semanttinen kernel SDK tukee tehokasta automaattista funktion kutsutoimintoa. Kun otat käyttöön automaattisen funktiokutsun, ydin voi valita automaattisesti, mitä funktioita ja kehotteita käytetään joissakin annetuissa syötteissä. Tämän ominaisuuden avulla voit säästää aikaa kutsumalla funktioita ja kehotteita manuaalisesti ja voit tehdä sovelluksistasi älykkäämpiä.
Jos haluat käyttää automaattista funktiokutsua, sinun on käytettävä sitä tukevaa OpenAI-mallia. Tällä hetkellä nämä mallit sisältävät GPT-3.5-turbo- ja GPT-4-mallit, joiden versio on 0613 tai uudempi.
Jos haluat ottaa automaattisen funktion kutsumisen käyttöön, ToolCallBehavior-objektin OpenAIPromptExecutionSettings-ominaisuudeksi on asetettava AutoInvokeKernelFunctions.
Oletetaan esimerkiksi, että sinulla on ainesosalaajennuksia, jotka tukevat seuraavia funktioita:
- `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 toiminnan avulla voit suorittaa funktion automaattisesti kehotteen perusteella. Esimerkiksi:
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);
Ainesosien ja funktioiden tietojen mukaan tämän koodin tulos voi olla samanlainen kuin seuraava vastaus:
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
Funktiokutsun avulla tekoäly voi käynnistää funktioita, joilla on asianmukaiset parametrit, oikeassa järjestyksessä. LLM voi iteratiivisesti kutsua funktioita käyttäjän tarpeisiin. Tämä tehdään palautesilmukalla, jossa tekoäly voi kutsua funktion, tarkistaa tuloksen ja päättää, mitä seuraavaksi tehdään.
AutoInvokeKernelFunctions-asetus kutsuu automaattisesti kehotteen suorittamiseen tarvittavat laajennukset, jolloin sovelluksesta tulee dynaamisempi ja tehokas pienemmällä koodilla. Tämän ominaisuuden avulla voit luoda monimutkaisempia sovelluksia, jotka pystyvät käsittelemään erilaisia skenaarioita.