Compartilhar via


Guia de migração do pacote Functions.Markdown para Functions.Yaml

O pacote NuGet Functions.Markdown foi preterido e será removido em uma versão futura como parte da iniciativa de limpeza. A substituição recomendada é o pacote Functions.Yaml.

Modelos de Prompt Markdown

Antes de migrar seu código para as novas APIs do pacote Functions.Yaml, considere migrar seus modelos de prompt de markdown para o novo formato YAML primeiro. Portanto, se você tiver um modelo de solicitação Markdown como este:

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

o modelo de prompt equivalente do YAML teria esta aparência:

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

Método KernelFunctionMarkdown.FromPromptMarkdown

Se o código usar o KernelFunctionMarkdown.FromPromptMarkdown método para criar uma função kernel do prompt, substitua-o pelo KernelFunctionYaml.FromPromptYaml método:

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

Observe que o método não aceita o KernelFunctionYaml.FromPromptYaml nome da função como um parâmetro. O nome da função agora faz parte da configuração do YAML.

Método MarkdownKernelExtensions.CreateFunctionFromMarkdown

Da mesma forma, se o código usar o MarkdownKernelExtensions.CreateFunctionFromMarkdown método de extensão Kernel para criar uma função kernel do prompt, substitua-a pelo PromptYamlKernelExtensions.CreateFunctionFromPromptYaml método:

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

Observe que o método não aceita o PromptYamlKernelExtensions.CreateFunctionFromPromptYaml nome da função como um parâmetro. O nome da função agora faz parte da configuração do YAML.