UPrompt 模板 #
简介 #
目前大部分的大语言模型的 Prompt 实际上是静态内容,模型自身也无法感知外部世界的变化,因此在某些场景下,Prompt 的内容需要动态生成。UPrompt 模板就是为了解决这个问题而设计的。
例如,对于同样一个问题,会因为 System Prompt 所表示的时间不同而有不同的回答,如下所示——
对话1:
Prompt: 以下是我和热恋女友的微信聊天对话,当前时间是23时10分,今天是星期二。
User: 宝贝在干嘛呢?
Bot: 亲爱的,我刚刚在看电视剧,现在准备去洗澡啦。你呢?今天过得怎么样?
对话2:
Prompt: 以下是我和热恋女友的微信聊天对话,当前时间是13时10分,今天是星期日。
User: 宝贝在干嘛呢?
Bot: 我在家里呢,正在整理一些东西。你呢?在干什么?
对于这个需要根据时间变化的例子,我们可以使用 UPrompt 模板来实现——
以下是我和热恋女友的微信聊天对话,当前时间是{{.ChineseTimeCST}},今天是{{.ChineseWeekdayCST}}。
模板变量 #
模板中的变量是由 {{ 和 }} 包裹的,变量名是由 . 分隔的,如 {{.ChineseTimeCST}}。变量名大小写敏感。同一模板中可以使用多个变量。
模板中的变量可以是以下的任意一个:
| 变量名 | 渲染结果示例 | 说明 |
|---|---|---|
Location | 北京 | 返回请求中获取的位置信息,无法获取且没有配置缺省值,则兜底填入某地 |
TimeUTC | 15:04:05 | 返回当前UTC时间,格式为"15:04:05" |
DateUTC | 2006-01-02 | 返回当前UTC日期,格式为"2006-01-02" |
DateTimeUTC | 2006-01-02 15:04:05 | 返回当前UTC日期和时间,格式为"2006-01-02 15:04:05" |
WeekdayUTC | Monday | 返回当前UTC的星期几,格式为英文(如 “Monday”) |
TimeCST | 23:04:05 | 返回当前CST(中国标准时间)时间,格式为"15:04:05" |
DateCST | 2006-01-02 | 返回当前CST日期,格式为"2006-01-02" |
DateTimeCST | 2006-01-02 23:04:05 | 返回当前CST日期和时间,格式为"2006-01-02 15:04:05" |
WeekdayCST | Monday | 返回当前CST的星期几,格式为英文(如 “Monday”) |
ChineseTimeUTC | 15时04分05秒 | 返回当前UTC时间,格式为"15时04分05秒" |
ChineseDateUTC | 2006年01月02日 | 返回当前UTC日期,格式为"2006年01月02日" |
ChineseDateTimeUTC | 2006年01月02日 15时04分05秒 | 返回当前UTC日期和时间,格式为"2006年01月02日 15时04分05秒" |
ChineseWeekdayUTC | 星期一 | 返回当前UTC的星期几,格式为中文(如 “星期一”) |
ChineseTimeCST | 23时04分05秒 | 返回当前CST时间,格式为"15时04分05秒" |
ChineseDateCST | 2006年01月02日 | 返回当前CST日期,格式为"2006年01月02日" |
ChineseDateTimeCST | 2006年01月02日 23时04分05秒 | 返回当前CST日期和时间,格式为"2006年01月02日 15时04分05秒" |
ChineseWeekdayCST | 星期一 | 返回当前CST的星期几,格式为中文(如 “星期一”) |
注意:渲染结果示例的时间和日期都是示例,实际渲染的结果会根据当前的时间和日期而变化。以上的CST指的是中国标准时间,UTC是协调世界时,两者都是国际上广泛使用的时间标准。这些变量允许在模板中插入指定格式的日期和时间。
使用说明 #
仅支持在 NLP 功能中的 prompt_header 字段使用,不支持在任何 query 处使用。
如果使用的变量不存在或者语法错误,模板渲染会静默失败,原文作为 Prompt 填入后续流程使用。