Freigeben über


Functions.Markdown zu Functions.Yaml-Paketmigrationshandbuch

Das Paket Functions.Markdown NuGet ist veraltet und wird in einer zukünftigen Version als Teil der Bereinigungsinitiative entfernt. Der empfohlene Ersatz ist das Paket Functions.Yaml.

Markdown-Eingabeaufforderungsvorlagen

Bevor Sie Ihren Code aus dem Paket Functions.Yaml zu den neuen APIs migrieren, sollten Sie zuerst Ihre Markdown-Eingabeaufforderungsvorlagen in das neue YAML-Format migrieren. Wenn Sie also eine Markdown-Eingabeaufforderungsvorlage wie folgt haben:

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

Die äquivalente YaML-Eingabeaufforderungsvorlage würde wie folgt aussehen:

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

KernelFunctionMarkdown.FromPromptMarkdown-Methode

Wenn Ihr Code die KernelFunctionMarkdown.FromPromptMarkdown Methode verwendet, um eine Kernelfunktion aus der Eingabeaufforderung zu erstellen, ersetzen Sie sie durch die KernelFunctionYaml.FromPromptYaml Methode:

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

Beachten Sie, dass die KernelFunctionYaml.FromPromptYaml Methode den Funktionsnamen nicht als Parameter akzeptiert. Der Funktionsname ist jetzt Teil der YAML-Konfiguration.

MarkdownKernelExtensions.CreateFunctionFromMarkdown-Methode

Wenn Ihr Code die MarkdownKernelExtensions.CreateFunctionFromMarkdown Kernelerweiterungsmethode verwendet, um eine Kernel-Funktion aus der Eingabeaufforderung zu erstellen, ersetzen Sie sie durch die PromptYamlKernelExtensions.CreateFunctionFromPromptYaml Methode:

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

Beachten Sie, dass die PromptYamlKernelExtensions.CreateFunctionFromPromptYaml Methode den Funktionsnamen nicht als Parameter akzeptiert. Der Funktionsname ist jetzt Teil der YAML-Konfiguration.