语义内核提示的 YAML 架构参考

语义内核提示的 YAML 架构参考是 YAML 提示的详细参考,其中列出了所有支持的 YAML 语法及其可用选项。

定义

名字

使用此配置创建提示函数时默认使用的函数名称。 如果名称为 null 或为空,则创建函数时将动态生成随机名称。

描述

使用此配置创建提示函数时默认使用的函数说明。

模板格式

语义内核模板格式的标识符。 语义内核支持以下模板格式:

  1. 语义内核 - 内置语义内核格式。
  2. 句柄栏 - 句柄栏模板格式。
  3. 液体 - 液体模板格式

模板

定义提示符的提示模板字符串。

输入变量

提示模板使用的输入变量的集合。 每个输入变量具有以下属性:

  1. name - 变量的名称。
  2. description - 变量的说明。
  3. default - 变量的可选默认值。
  4. is_required - 变量是否被视为必需(而不是可选)。 默认值为 true
  5. json_schema - 描述此变量的可选 JSON 架构。
  6. allow_dangerously_set_content - 一个布尔值,指示是否将变量值作为潜在的危险内容进行处理。 默认值为 false。 有关详细信息,请参阅 防止提示注入攻击

提示

allow_dangerously_set_content 的默认值为 false。 如果设置为 true,则输入变量的值被视为安全内容。 对于与聊天完成服务一起使用的提示,应设置为 false 以防止提示注入攻击。 使用其他 AI 服务(例如 Text-To-Image)时,可以设置为 true 以允许更复杂的提示。

输出变量

提示模板所用的输出变量。 输出变量具有以下属性:

  1. description - 变量的说明。
  2. json_schema - 描述此变量的 JSON 架构。

执行设置

提示模板使用的执行设置的集合。 执行设置是一个字典,根据服务 ID 键入或默认执行设置用 default 表示。 每个 PromptExecutionSettings 的服务 ID 必须与字典中的键匹配。

每个条目具有以下属性:

  1. service_id - 此标识用于识别这些设置所配置的服务,例如,azure_openai_eastus、openai、ollama、huggingface 等。
  2. model_id - 这标识了为这些设置配置的 AI 模型,例如 gpt-4、gpt-3.5-turbo。
  3. function_choice_behavior - 定义 LLM 选择函数的方式以及 AI 连接器如何调用函数的行为。 有关详细信息,请参阅 函数选择行为

提示

如果提供,服务标识符将是执行设置字典集合中的密钥。 如果未提供,服务标识符将设置为 default

函数选择行为

若要禁用函数调用,并且让模型仅生成面向用户的消息,请将属性设置为 null(默认值)。

  • auto - 允许模型决定是否调用函数,如果是,则调用哪个函数。
  • required - 强制模型始终调用一个或多个函数。
  • none - 指示模型不调用任何函数,并仅生成面向用户的消息。

允许危险设置内容

一个布尔值,该值指示是否允许从函数将潜在的危险内容插入到提示中。 默认值为 false。 设置为 true 时,函数的返回值仅被视为安全内容。 对于与聊天完成服务一起使用的提示,应设置为 false 以防止提示注入攻击。 使用其他 AI 服务(例如 Text-To-Image)时,可以设置为 true 以允许更复杂的提示。 有关详细信息,请参阅 防止提示注入攻击

示例 YAML 提示符

下面是一个示例 YAML 提示符,它使用 Handlebars 模板格式,并在与 gpt-3gpt-4 模型一起使用时配置了不同的温度。

name: GenerateStory
template: |
  Tell a story about {{topic}} that is {{length}} sentences long.
template_format: handlebars
description: A function that generates a story about a topic.
input_variables:
  - name: topic
    description: The topic of the story.
    is_required: true
  - name: length
    description: The number of sentences in the story.
    is_required: true
output_variable:
  description: The generated story.
execution_settings:
  service1:  
    model_id: gpt-4
    temperature: 0.6
  service2:
    model_id: gpt-3
    temperature: 0.4
  default:
    temperature: 0.5

后续步骤