向蓝 官方认证 实名认证   发表于  2024-4-15 16:14:54 | 显示全部楼层 |阅读模式 202 0 IP属地:广东深圳
语义内核提示模板语言是一种简单的方法 使用纯文本定义和编写 AI 函数。 您可以使用它来创建自然语言提示、生成响应、提取 信息,调用其他提示或执行任何其他可以执行的任务 用文字表达。
该语言支持三个基本功能,允许您 1) 包括 变量,2) 调用外部函数,以及 3) 将参数传递给函数。
您无需编写任何代码或导入任何外部库,只需使用 大括号用于在提示中嵌入表达式。 语义内核将解析您的模板并执行其背后的逻辑。 这样,您可以轻松地将 AI 集成到您的应用程序中,并且 最大的灵活性。{{...}}
提示
如果您需要更多功能,我们还支持 [color=var(--theme-success-dark)]Handlebars 模板引擎,它允许您使用循环、条件和其他高级 特征。在此处了解如何使用 [color=var(--theme-success-dark)]Handlebars 模板引擎

变量
若要在提示中包含变量值,请使用以下语法。 例如,如果有一个名为 (用于保存用户名) 的变量, 你可以这样写:{{$variableName}}name
Hello {{$name}}, welcome to Semantic Kernel!
这将生成带有用户名的问候语。
空格被忽略,所以如果你觉得它更易读,你也可以写:
Hello {{ $name }}, welcome to Semantic Kernel!
函数调用
若要调用外部函数并将结果嵌入到提示符中,请使用以下语法。 例如,如果有一个名为 给定位置的天气预报,您可以写:{{namespace.functionName}}weather.getForecast
The weather today is {{weather.getForecast}}.
这将生成一个句子,其中包含默认位置的天气预报 存储在变量中。 该变量由内核在调用函数时自动设置。 例如,上面的代码等效于:inputinput
The weather today is {{weather.getForecast $input}}.
函数参数
若要调用外部函数并向其传递参数,请使用 and 语法。 例如,如果要将不同的输入传递给天气预报 函数,可以写成:{{namespace.functionName $varName}}{{namespace.functionName "value"}}
[backcolor=var(--theme-code-header)][size=0.8]复制[color=var(--theme-success-invert) !important][backcolor=var(--theme-success-base) !important][size=1.125]

The weather today in {{$city}} is {{weather.getForecast $city}}.The weather today in Schio is {{weather.getForecast "Schio"}}.
这将产生两个句子,其中包含两个不同的天气预报 locations,使用变量中存储的城市和提示模板中硬编码的“Schio”位置值。city
有关特殊字符的说明
语义函数模板是文本文件,因此无需转义特殊字符 比如新的行和标签。但是,有两种情况需要特殊语法:
  • 在提示模板中包含双大括号
  • 将包含引号的硬编码值传递给函数
需要双大括号的提示
双大括号有一个特殊的用例,它们用于注入变量, 值和函数转换为模板。
如果您需要在提示中包含 {{ 和 }} 序列,则 可以触发特殊的渲染逻辑,最好的解决方案是使用字符串值 用引号括起来,比如 和{{ "{{" }}{{ "}}" }}
例如:
{{ "{{" }} and {{ "}}" }} are special SK sequences.
将呈现为:
{{ and }} are special SK sequences.
包含引号和转义的值
可以使用单引号和双引号将值括起来。
为了避免需要特殊语法,在使用包含单引号的值时,建议用双引号换行值。同样地 使用包含双引号的值时,请用单引号换行该值。
例如:
[backcolor=var(--theme-code-header)][size=0.8]复制[color=var(--theme-success-invert) !important][backcolor=var(--theme-success-base) !important][size=1.125]

...text... {{ functionName "one 'quoted' word" }} ...text......text... {{ functionName 'one "quoted" word' }} ...text...
对于值同时包含单引号和双引号的情况,您将 需要转义,使用特殊的 «\» 符号。
在值周围使用双引号时,请使用 «\“» 包含双引号 值内的符号:
... {{ "quotes' \"escaping\" example" }} ...
同样,使用单引号时,请使用 «\'» 包含单引号 在值内:
... {{ 'quotes\' "escaping" example' }} ...
两者都呈现为:
... quotes' "escaping" example ...
请注意,为了保持一致性,序列 «\'» 和 «\“» 始终呈现 到«'»和«“»,即使可能不需要逃生。
例如:
... {{ 'no need to \"escape" ' }} ...
相当于:
... {{ 'no need to "escape" ' }} ...
并且两者都呈现为:
... no need to "escape" ...
如果您可能需要在引号前面呈现反斜杠,因为 «\» 是一个特殊的字符,您也需要转义它,并使用特殊序列 «\\\'» 和 «\\\“»。
例如:
{{ 'two special chars \\\' here' }}
呈现为:
two special chars \' here
与单引号和双引号类似,符号 «\» 并不总是需要 逃脱。但是,为了保持一致性,即使不需要也可以转义。
例如:
... {{ 'c:\\documents\\ai' }} ...
相当于:
... {{ 'c:\documents\ai' }} ...
两者都呈现为:
... c:\documents\ai ...
最后,反斜杠只有在 «'»、«“» 和 «\» 前面使用时才具有特殊含义。
在所有其他情况下,反斜杠字符没有影响,并按原样呈现。 例如:
{{ "nothing special about these sequences: \0 \n \t \r \foo" }}
呈现为:
nothing special about these sequences: \0 \n \t \r \foo

XBeanAI数字人系统管理员,产品经理,负责发布官方信息,帮助大家解答使用问题。
您需要登录后才可以回帖 登录 | 立即注册

关于我们|小豆健康新闻网|注册协议|隐私保护|小豆星球XBeanAI数字人

Copyright © 2023, XDHLH.COM&XBEANAI.COM    Powered by XBeanAI! ( 粤ICP备2021116659号 )

增值电信业务许可证:川B2-20220560 药品/医疗器械互联网信息服务备案:川(备)-非经营性-2022-0004号 川蓉药监械经营备 20223934号

GMT+8, 2024-5-17 21:05

 
 
微信客服

扫码关注微信