Sdílet prostřednictvím


Průvodce migrací balíčků Functions.Markdown do Functions.Yaml

Balíček NuGet Functions.Markdown je zastaralý a v budoucí verzi se odebere jako součást iniciativy vyčištění. Doporučená náhrada je balíček Functions.Yaml.

Šablony pro Markdown prompt

Před migrací kódu do nových rozhraní API z balíčku Functions.Yaml zvažte nejprve migraci šablon výzvy markdownu do nového formátu YAML. Pokud tedy máte šablonu výzvy Markdownu, například takto:

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

Ekvivalentní šablona výzvy YAML by vypadala takto:

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

Metoda KernelFunctionMarkdown.FromPromptMarkdown

Pokud váš kód použije metodu KernelFunctionMarkdown.FromPromptMarkdown k vytvoření funkce jádra z výzvy, nahraďte ji metodou KernelFunctionYaml.FromPromptYaml :

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

Všimněte si, že KernelFunctionYaml.FromPromptYaml metoda nepřijímá název funkce jako parametr. Název funkce je teď součástí konfigurace YAML.

Metoda MarkdownKernelExtensions.CreateFunctionFromMarkdown

Podobně pokud váš kód používá metodu MarkdownKernelExtensions.CreateFunctionFromMarkdown rozšíření Jádra k vytvoření funkce jádra z výzvy, nahraďte ji metodou PromptYamlKernelExtensions.CreateFunctionFromPromptYaml :

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

Všimněte si, že PromptYamlKernelExtensions.CreateFunctionFromPromptYaml metoda nepřijímá název funkce jako parametr. Název funkce je teď součástí konfigurace YAML.