Condividi tramite


Guida alla migrazione del pacchetto Functions.Markdown a Functions.Yaml

Il pacchetto NuGet Functions.Markdown è deprecato e verrà rimosso in una versione futura come parte dell'iniziativa di pulizia. La sostituzione consigliata è il pacchetto Functions.Yaml.

Modelli di prompt markdown

Prima di eseguire la migrazione del codice alle nuove API dal pacchetto Functions.Yaml, è consigliabile eseguire prima la migrazione dei modelli di prompt markdown al nuovo formato YAML. Pertanto, se si dispone di un modello di prompt markdown simile al seguente:

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

Il modello di richiesta equivalente YAML sarà simile al seguente:

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

Metodo KernelFunctionMarkdown.FromPromptMarkdown

Se il codice usa il KernelFunctionMarkdown.FromPromptMarkdown metodo per creare una funzione kernel dal prompt, sostituirlo con il KernelFunctionYaml.FromPromptYaml metodo :

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

Si noti che il KernelFunctionYaml.FromPromptYaml metodo non accetta il nome della funzione come parametro. Il nome della funzione fa ora parte della configurazione YAML.

Il metodo MarkdownKernelExtensions.CreateFunctionFromMarkdown

Analogamente, se il codice usa il MarkdownKernelExtensions.CreateFunctionFromMarkdown metodo di estensione Kernel per creare una funzione kernel dal prompt, sostituirlo con il PromptYamlKernelExtensions.CreateFunctionFromPromptYaml metodo :

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

Si noti che il PromptYamlKernelExtensions.CreateFunctionFromPromptYaml metodo non accetta il nome della funzione come parametro. Il nome della funzione fa ora parte della configurazione YAML.