UPrompt 模板

UPrompt 模板 #

简介 #

目前大部分的大语言模型的 Prompt 实际上是静态内容,模型自身也无法感知外部世界的变化,因此在某些场景下,Prompt 的内容需要动态生成。UPrompt 模板就是为了解决这个问题而设计的。

例如,对于同样一个问题,会因为 System Prompt 所表示的时间不同而有不同的回答,如下所示——

对话1:

Prompt: 以下是我和热恋女友的微信聊天对话,当前时间是23时10分,今天是星期二。
User: 宝贝在干嘛呢?
Bot: 亲爱的,我刚刚在看电视剧,现在准备去洗澡啦。你呢?今天过得怎么样?

对话2:

Prompt: 以下是我和热恋女友的微信聊天对话,当前时间是13时10分,今天是星期日。
User: 宝贝在干嘛呢?
Bot: 我在家里呢,正在整理一些东西。你呢?在干什么?

对于这个需要根据时间变化的例子,我们可以使用 UPrompt 模板来实现——

以下是我和热恋女友的微信聊天对话,当前时间是{{.ChineseTimeCST}},今天是{{.ChineseWeekdayCST}}。

模板变量 #

模板中的变量是由 {{}} 包裹的,变量名是由 . 分隔的,如 {{.ChineseTimeCST}}。变量名大小写敏感。同一模板中可以使用多个变量。

模板中的变量可以是以下的任意一个:

变量名渲染结果示例说明
Location北京返回请求中获取的位置信息,无法获取且没有配置缺省值,则兜底填入某地
TimeUTC15:04:05返回当前UTC时间,格式为"15:04:05"
DateUTC2006-01-02返回当前UTC日期,格式为"2006-01-02"
DateTimeUTC2006-01-02 15:04:05返回当前UTC日期和时间,格式为"2006-01-02 15:04:05"
WeekdayUTCMonday返回当前UTC的星期几,格式为英文(如 “Monday”)
TimeCST23:04:05返回当前CST(中国标准时间)时间,格式为"15:04:05"
DateCST2006-01-02返回当前CST日期,格式为"2006-01-02"
DateTimeCST2006-01-02 23:04:05返回当前CST日期和时间,格式为"2006-01-02 15:04:05"
WeekdayCSTMonday返回当前CST的星期几,格式为英文(如 “Monday”)
ChineseTimeUTC15时04分05秒返回当前UTC时间,格式为"15时04分05秒"
ChineseDateUTC2006年01月02日返回当前UTC日期,格式为"2006年01月02日"
ChineseDateTimeUTC2006年01月02日 15时04分05秒返回当前UTC日期和时间,格式为"2006年01月02日 15时04分05秒"
ChineseWeekdayUTC星期一返回当前UTC的星期几,格式为中文(如 “星期一”)
ChineseTimeCST23时04分05秒返回当前CST时间,格式为"15时04分05秒"
ChineseDateCST2006年01月02日返回当前CST日期,格式为"2006年01月02日"
ChineseDateTimeCST2006年01月02日 23时04分05秒返回当前CST日期和时间,格式为"2006年01月02日 15时04分05秒"
ChineseWeekdayCST星期一返回当前CST的星期几,格式为中文(如 “星期一”)

注意:渲染结果示例的时间和日期都是示例,实际渲染的结果会根据当前的时间和日期而变化。以上的CST指的是中国标准时间,UTC是协调世界时,两者都是国际上广泛使用的时间标准。这些变量允许在模板中插入指定格式的日期和时间。

使用说明 #

仅支持在 NLP 功能中的 prompt_header 字段使用,不支持在任何 query 处使用。

如果使用的变量不存在或者语法错误,模板渲染会静默失败,原文作为 Prompt 填入后续流程使用。