Udostępnij za pośrednictwem


Przewodnik Migracji Pakietów z Functions.Markdown do Functions.Yaml

Pakiet NuGet Functions.Markdown jest przestarzały i zostanie usunięty w przyszłej wersji w ramach inicjatywy oczyszczania. Zalecanym zastąpieniem jest pakiet Functions.Yaml.

Szablony monitów języka Markdown

Przed migracją kodu do nowych interfejsów API z pakietu Functions.Yaml rozważ najpierw migrację szablonów monitów markdown do nowego formatu YAML. Dlatego jeśli masz szablon polecenia w Markdown taki jak:

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

odpowiedni szablon monitu YAML wygląda następująco:

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

Jeśli kod używa KernelFunctionMarkdown.FromPromptMarkdown metody do utworzenia funkcji jądra z monitu, zastąp ją KernelFunctionYaml.FromPromptYaml metodą :

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

Zwróć uwagę, że KernelFunctionYaml.FromPromptYaml metoda nie akceptuje nazwy funkcji jako parametru. Nazwa funkcji jest teraz częścią konfiguracji YAML.

Metoda MarkdownKernelExtensions.CreateFunctionFromMarkdown

Podobnie, jeśli kod używa MarkdownKernelExtensions.CreateFunctionFromMarkdown metody rozszerzenia jądra do utworzenia funkcji jądra z wiersza polecenia, zastąp go PromptYamlKernelExtensions.CreateFunctionFromPromptYaml metodą :

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

Zwróć uwagę, że PromptYamlKernelExtensions.CreateFunctionFromPromptYaml metoda nie akceptuje nazwy funkcji jako parametru. Nazwa funkcji jest teraz częścią konfiguracji YAML.