Panduan Migrasi Paket Functions.Markdown ke Functions.Yaml

Paket Functions.Markdown NuGet tidak digunakan lagi dan akan dihapus dalam rilis mendatang sebagai bagian dari inisiatif pembersihan. Penggantian yang direkomendasikan adalah paket Functions.Yaml.

Templat Petunjuk Markdown

Sebelum memigrasikan kode Anda ke API baru dari paket Functions.Yaml, pertimbangkan untuk memigrasikan templat perintah markdown Anda ke format YAML baru terlebih dahulu. Jadi, jika Anda memiliki templat perintah Markdown seperti ini:

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

templat prompt setara YAML akan terlihat seperti ini:

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

Metode KernelFunctionMarkdown.FromPromptMarkdown

Jika kode Anda menggunakan KernelFunctionMarkdown.FromPromptMarkdown metode untuk membuat Fungsi Kernel dari perintah, ganti dengan KernelFunctionYaml.FromPromptYaml metode :

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

Perhatikan bahwa KernelFunctionYaml.FromPromptYaml metode tidak menerima nama fungsi sebagai parameter. Nama fungsi sekarang menjadi bagian dari konfigurasi YAML.

Metode MarkdownKernelExtensions: buat fungsi dari Markdown

Demikian pula, jika kode Anda menggunakan MarkdownKernelExtensions.CreateFunctionFromMarkdown metode ekstensi Kernel untuk membuat Fungsi Kernel dari perintah, ganti dengan PromptYamlKernelExtensions.CreateFunctionFromPromptYaml metode :

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

Perhatikan bahwa PromptYamlKernelExtensions.CreateFunctionFromPromptYaml metode tidak menerima nama fungsi sebagai parameter. Nama fungsi sekarang menjadi bagian dari konfigurasi YAML.