Appeler automatiquement des fonctions

Effectué

Le Kit de développement logiciel (SDK) Semantic Kernel prend en charge une fonctionnalité d’appel de fonction automatique puissante. Une fois activé, l’appel de fonction automatique permet au noyau de sélectionner automatiquement les fonctions et les prompts à utiliser sur une entrée fournie. Cette fonctionnalité peut rendre vos applications plus intelligentes et vous faire gagner du temps en vous évitant d’appeler manuellement des fonctions et des prompts.

Pour utiliser l’appel de fonction automatique, vous devez utiliser un modèle OpenAI qui prend en charge cette fonctionnalité. GPT-3.5-turbo et GPT-4 versions 0613 et ultérieures font actuellement partie des modèles compatibles.

Pour activer l’appel automatique de fonction, vous devez définir la propriété ToolCallBehavior de l’objet OpenAIPromptExecutionSettings sur AutoInvokeKernelFunctions.

Par exemple, supposons que vous disposiez de plug-ins d’ingrédients qui prennent en charge les fonctions suivantes :

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

Vous pouvez utiliser le comportement AutoInvokeKernelFunctions pour exécuter automatiquement une fonction d’après un prompt. Par exemple :

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

Selon vos ingrédients et les détails de la fonction, la sortie de ce code peut être similaire à la réponse suivante :

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

L’appel de fonction permet à l’IA d’appeler des fonctions avec les paramètres appropriés dans le bon ordre. Le LLM peut appeler des fonctions de manière itérative pour répondre aux besoins de l’utilisateur. Cette opération est effectuée via une boucle de rétroaction dans laquelle l’IA peut appeler une fonction, vérifier le résultat, puis décider de ce qu’il faut faire ensuite.

Le paramètre AutoInvokeKernelFunctions appelle automatiquement les plug-ins nécessaires pour exécuter l’invite, ce qui rend votre application dynamique et robuste avec moins de code. Cette fonctionnalité peut vous aider à créer des applications plus complexes qui peuvent gérer divers scénarios.