Functions.Markdown 至 Functions.Yaml 套件移轉指南

Functions.Markdown NuGet 套件已被取代,並將在未來版本中移除,作為清理計劃的一部分。 建議的取代是 Functions.Yaml 套件。

Markdown 提示範本

將程式代碼從 Functions.Yaml 套件移轉至新的 API 之前,請考慮先將 Markdown 提示範本移轉至新的 YAML 格式。 因此,如果您有 Markdown 提示範本,如下所示:

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

相當於 YAML 的提示模板看起來會是這樣:

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 方法

如果您的程式代碼使用 KernelFunctionMarkdown.FromPromptMarkdown 方法從提示建立 Kernel 函式,請將它取代為 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);

請注意, KernelFunctionYaml.FromPromptYaml 方法不接受函式名稱做為參數。 函式名稱現在是 YAML 組態的一部分。

MarkdownKernelExtensions.CreateFunctionFromMarkdown 方法

同樣地,如果您的程式代碼使用 MarkdownKernelExtensions.CreateFunctionFromMarkdown Kernel 擴充方法從提示建立 Kernel 函式,請將它取代為 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);

請注意, PromptYamlKernelExtensions.CreateFunctionFromPromptYaml 方法不接受函式名稱做為參數。 函式名稱現在是 YAML 組態的一部分。