Partager via


Guide de migration de package Functions.Markdown vers Functions.Yaml

Le package NuGet Functions.Markdown est déconseillé et sera supprimé dans une prochaine version dans le cadre de l’initiative de nettoyage. Le remplacement recommandé est le package Functions.Yaml.

Modèles de demande Markdown

Avant de migrer votre code vers les nouvelles API à partir du package Functions.Yaml, envisagez de migrer d’abord vos modèles d’invite Markdown vers le nouveau format YAML. Par conséquent, si vous avez un modèle d’invite Markdown comme celui-ci :

This is a semantic kernel prompt template
```sk.prompt
Hello AI, tell me about {{$input}}
```
```sk.execution_settings
{
    "service1" : {
        "model_id": "gpt4",
        "temperature": 0.7,
        "function_choice_behavior": {
            "type": "auto",
        }
    }
}
```
```sk.execution_settings
{
    "service2" : {
        "model_id": "gpt-4o-mini",
        "temperature": 0.7
    }
}

Le modèle de script YAML équivalent ressemblerait à ceci :

name: TellMeAbout
description: This is a semantic kernel prompt template
template: Hello AI, tell me about {{$input}}
template_format: semantic-kernel
execution_settings:
  service1:
    model_id: gpt4
    temperature: 0.7
    function_choice_behavior:
      type: auto
  service2:
    model_id: gpt-4o-mini
    temperature: 0.7

Méthode KernelFunctionMarkdown.FromPromptMarkdown

Si votre code utilise la KernelFunctionMarkdown.FromPromptMarkdown méthode pour créer une fonction de noyau à partir de l’invite, remplacez-la par la KernelFunctionYaml.FromPromptYaml méthode :

// Before
string promptTemplateConfig = """
This is a semantic kernel prompt template
```sk.prompt
Hello AI, tell me about {{$input}}
```
""";

KernelFunction function = KernelFunctionMarkdown.FromPromptMarkdown(promptTemplateConfig, "TellMeAbout");

//After
string promptTemplateConfig = 
"""
name: TellMeAbout
description: This is a semantic kernel prompt template
template: Hello AI, tell me about {{$input}}
""";

KernelFunction function = KernelFunctionYaml.FromPromptYaml(promptTemplateConfig);

Notez que la méthode n’accepte pas le KernelFunctionYaml.FromPromptYaml nom de fonction comme paramètre. Le nom de la fonction fait désormais partie de la configuration YAML.

Méthode MarkdownKernelExtensions.CreateFunctionFromMarkdown

De même, si votre code utilise la MarkdownKernelExtensions.CreateFunctionFromMarkdown méthode d’extension noyau pour créer une fonction de noyau à partir de l’invite, remplacez-la par la PromptYamlKernelExtensions.CreateFunctionFromPromptYaml méthode :

// Before
string promptTemplateConfig = """
This is a semantic kernel prompt template
```sk.prompt
Hello AI, tell me about {{$input}}
```
""";

Kernel kernel = new Kernel();

KernelFunction function = kernel.CreateFunctionFromMarkdown(promptTemplateConfig, "TellMeAbout");

//After
string promptTemplateConfig = 
"""
name: TellMeAbout
description: This is a semantic kernel prompt template
template: Hello AI, tell me about {{$input}}
""";

Kernel kernel = new Kernel();

KernelFunction function = kernel.CreateFunctionFromPromptYaml(promptTemplateConfig);

Notez que la méthode n’accepte pas le PromptYamlKernelExtensions.CreateFunctionFromPromptYaml nom de fonction comme paramètre. Le nom de la fonction fait désormais partie de la configuration YAML.