优化提示词(Prompt)能够使大语言模型输出的结果更符合预期,OpenSearch-LLM智能问答版支持自定义Prompt模板,用户可以根据实际的业务场景创建专属的Prompt模板。本文介绍如何创建并管理用户的自定义Prompt模板。
创建Prompt模板
系统提供了一个默认Prompt模板,在无搜索结果时不会使用大模型公开内容进行回答。如果用户需要自定义模板,单击Prompt管理->创建模板,进入创建Prompt模板界面。在创建Prompt模板界面,按要求填写Prompt模板名称、模板简介、message后,单击确认按钮即可完成模板创建。
参数说明
Prompt模板名称:必填,长度为1-30个字符,以字母开头,可以包含大小写字母,数字和下划线,不可与其它Prompt模板名称相同。
Prompt模板简介:选填,长度为1-30个字符,以大小字母、数字或中文开头,可包含下划线(_)或连接线(-)。
message:message信息由成对的role、content信息呈现,点击“+”可添加新的role、content对。可以选择的role有:system、user和assistant。content信息不得为空且不能包含 <#
和 [#
字符,不超过1024个字符。
system:表示系统消息,拥有最高优先级,可用于指导LLM按预设的功能、规范或角色进行输出。使用系统消息(system)是可选的,但如果选择使用系统消息,它必须位于message列表的首位。
user和assistant:分别表示用户和模型的消息,它们应交替出现在对话中,模拟实际对话流程。message列表应以user消息结尾。
自定义变量:用户可以在prompt中使用自定义变量,语法格式为
${parameters.变量名}
。变量名长度为1-64个字符,可以包含大小写字母,数字和下划线。用户在自定义变量时需要设置变量的默认值,可以通过如下方式进行设置:
${(parameters.name)!} : 表示默认值为空
${(parameters.name)!"大模型"}: 表示默认值为:大模型
说明设置输入到大模型中的最终Prompt,可通过变量传递值。如果设置变量,需通过接口传递相应的变量值,请按规定语法进行设置。变量不可与系统内置变量重名。系统内置变量:
{question}: 用户输入的原始query
{docs}: 按照文档拼接方式生成好的内容
message设置示例
单击确认按钮成功创建模板后,请单击问答测试跳转进入问答测试界面,知识库中已提前上传OpenSearch-LLM智能问答版相关知识:
系统默认模板
role
content
问答测试
Prompt模板效果
system
You are a helpful assistant.
问:1+1=
答:根据已知信息无法回答该问题。上述信息中并没有包含任何与数学运算相关的内容,因此无法根据提供的信息得出1+1等于多少的答案。
问:一句话介绍LLM智能问答版
答:LLM智能问答版是阿里云提供的一种智能开放搜索服务,它基于内置的LLM大模型,为企业提供专属的问答搜索服务,能够快速搭建问答搜索系统,并能自动生成问答结果、参考图片、参考链接等内容,从而实现更智能、优质的问答搜索体验。
非知识库知识:在无搜索结果时不会使用大模型公开内容进行回答,只会根据已知信息来进行回答,确保回答内容的可靠性真实性。
知识库知识:能够基于已知信息给出准确可靠的回答。
user
已知信息包含多个独立文档,每个文档在<article>和</article>之间,已知信息如下:
'''${docs}'''
根据上述已知信息,详细且有条理地回答用户的问题。确保答案充分回答了问题并且正确使用了已知信息。如果信息不足以回答问题,请说“根据已知信息无法回答该问题”。不要使用不在已知信息中的内容生成答案,确保答案中每一个陈述在上述已知信息中有相应内容支撑。答案请使用中文。
问题是:'''${question}'''
如果您想要在无搜索结果时让模型基于公开内容进行回答可以自定义模板:
role
content
问答测试
Prompt模板效果
system
You are a helpful assistant.
问:1+1=
答:1+1=2。
问:一句话介绍LLM智能问答版
答:LLM智能问答版是阿里云提供的一种智能开放搜索服务,它基于内置的LLM大模型,能够快速搭建企业专属的问答搜索系统,并能自动生成问答结果、参考图片、参考链接等内容,从而为企业提供智能、优质的问答搜索服务。
非知识库知识:在无搜索结果时会使用大模型公开内容进行回答。
知识库知识:能够基于已知信息给出准确可靠的回答。
user
已知信息包含多个独立文档,每个文档在<article>和</article>之间,已知信息如下:
'''${docs}'''
您博学多才,了解很多知识,包括数学计算,请准确回答如下问题。
问题是:'''${question}'''
如果您需要在prompt自定义变量,可以按
${(parameters.变量名)!"变量值"}
的格式写入:role
content
问答测试
Prompt模板效果
system
You are a helpful assistant.
模型:opensearch-qwen
在问答测试->Prompt参数界面可以查看自定义变量。
问:1+1=
答:根据已知信息无法回答该问题。上述信息中并没有包含任何与数学计算相关的内容,仅提供了关于OpenSearch-LLM智能问答版和阿里云服务的介绍,以及一些服务和产品的描述,并未涉及数学运算。
控制台支持直接修改变量值:
问:1+1=
答:非常抱歉,根据您提供的已知信息,我无法回答关于数学计算的问题,因为所提供的文本中并没有包含任何与数学运算相关的部分。如果您需要解决数学问题,建议提供相关的数学信息或者使用专门的数学计算工具。
自定义了一个变量no_answer,在信息不足以回答问题时,模型将会输出no_answer变量的默认值:“根据已知信息无法回答该问题”,修改变量值可以改变模型的输出,变为“非常抱歉”。
user
已知信息包含多个独立文档,每个文档在<article>和</article>之间,已知信息如下:
'''${docs}'''
根据上述已知信息,详细且有条理地回答用户的问题。确保答案充分回答了问题并且正确使用了已知信息。如果信息不足以回答问题,请说${(parameters.no_answer)!"根据已知信息无法回答该问题"}。不要使用不在已知信息中的内容生成答案,确保答案中每一个陈述在上述已知信息中有相应内容支撑。答案请使用中文。
问题是:'''${question}'''
管理Prompt模板
创建完成后可在Prompt管理界面对当前所有Prompt模板进行管理,可以进行查看详情、编辑及删除的操作,单击问答测试按钮后,将跳转至问答测试界面,并使用选定的 Prompt 模板进行测试。
系统默认Prompt模板不支持编辑。
编辑Prompt模板时,不支持修改Prompt模板名称,可以修改其它内容。