Compartir a través de


Guía de migración de paquetes Functions.Markdown a Functions.Yaml

El paquete NuGet Functions.Markdown está en desuso y se quitará en una versión futura como parte de la iniciativa de limpieza. El reemplazo recomendado es el paquete Functions.Yaml.

Plantillas de indicaciones de Markdown

Antes de migrar el código a las nuevas API desde el paquete Functions.Yaml, considere la posibilidad de migrar primero las plantillas de aviso de Markdown al nuevo formato YAML. Entonces, si tienes una plantilla de prompt de Markdown como esta:

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

La plantilla de solicitud equivalente de YAML tendría el siguiente aspecto:

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"

Si su código usa el KernelFunctionMarkdown.FromPromptMarkdown método para crear una función kernel desde un prompt, reemplácelo por el método 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);

Observe que el método no acepta el KernelFunctionYaml.FromPromptYaml nombre de función como parámetro. El nombre de la función ahora forma parte de la configuración de YAML.

Método denominado "MarkdownKernelExtensions.CreateFunctionFromMarkdown"

Del mismo modo, si el código usa el método de extensión Kernel para crear una función Kernel desde el prompt MarkdownKernelExtensions.CreateFunctionFromMarkdown, reemplácelo por el método 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);

Observe que el método no acepta el PromptYamlKernelExtensions.CreateFunctionFromPromptYaml nombre de función como parámetro. El nombre de la función ahora forma parte de la configuración de YAML.