在与大模型交互时,提示词能控制大模型更好的达到你所期望的结果,在线编排提供了两种方式帮你实现这一功能。分别为内置提示词和提示词模板。
编写内置提示词
在星火大模型
节点变量中可以直接编写简单的提示词。
部署与测试
保存节点并且部署后,即可在测试环境进行对话测试。
请求效果
可以在请求数据中看到当前节点实际所请求的内容:
{
"messages": [
{
"role": "user",
"content": "你是个英语老师,不论我说什么,你都会以英文回复我"
},
{
"role": "assistant",
"content": "好的"
},
{
"role": "user",
"content": "你好"
},
{
"role": "assistant",
"content": "Hello! How can I assist you today?"
},
{
"role": "user",
"content": "你在做什么"
}
],
"max_tokens": 1024,
"temperature": 0.1
}
点击提示词模板
模块的创建模板
按钮,并填写模板名称;
编辑模板
点击模板详情中的提示词模板
- 编辑
按钮,输入你的提示词内容;
提示词模板支持插入对话页参数以及知识库检索内容。接下来将通过几个例子介绍模板变量的用法。
假如你想让应用成为一个智能英语助教,可以将提示模板设置为如下形式:
现在你是一名英语助教,请以1-2个句子用英语回答以下问题:
{{user_input}}
用户输入
这一变量以占位符{{user_input}}
的形式写在模板中。在接下来的例子中,要传入的其他变量都用同样的方式写在模板中。
若你想让应用获得对话页参数
的信息,可以继续填入变量占位符,例子如下:假如对话页参数有name和topic。
现在你是一名英语助教,我的名字是{{name}},请围绕{{topic}}以1-2个句子用英语回答以下问题:
{{user_input}}
模板引擎支持
Mustache
无逻辑模板,实现更复杂的模板编排,详细的官方说明文档点击此处
模板ID获取方式:在提示词模块点击对应的模板,点击复制模板ID
对话入口
,提示词
,星火大模型
,流程结束
4个节点,并按下图连接节点。提示词
节点的提示词模板ID选项粘贴提示词模板ID即可,API KEY填入平台请求密钥。如果使用了提示词节点,则星火大模型的提示词选项需要保持为空。因为当多个节点直接连接,并且有冲突的参数设置时,最终的生效值会以最后一个节点的配置为准,从而导致内置提示词覆盖提示词节点的内容。
由于在提示词节点的输入参数要求如下:
{
"name":"", // 用户填写自己的名字
"topic":"", //用户选择要对话的话题
"user_input": "" // 用户请求的问题
}
因此我们需要使用function节点,做数据格式转换。
拖入function
节点在提示词
节点和对话入口
之间。
展开function
节点,在函数选项中输入以下代码:
// 从 payload 中提取所需信息
const messages = msg.payload.messages;
const inputs = msg.payload.inputs || {};
// 找到最后一个 "user" 角色的消息
const lastUserMessage = messages.slice().reverse().find(message => message.role === 'user');
// 构造新的 payload
msg.payload = {
name: inputs.name || "",
topic: inputs.topic || "",
user_input: lastUserMessage ? lastUserMessage.content : ""
};
return msg;
由于name
和topic
参数需要用户在对话前进行输入,我们可以使用对话页参数配置
节点;
该节点可以实现在进入对话应用前,让用户填写前置信息,以获取对话所需内容。
节点参数属性如下:
{
"name":{
"format":"input",
"title":"名字",
"type":"string",
"required":true
},
"topic":{
"format":"select",
"title":"话题",
"type":"string",
"required":true,
"enum":[
{
"name":"电影",
"value":"电影"
},
{
"name":"美食",
"value":"美食"
}
],
"default":"电影"
}
}
完成配置即可以在对话前弹出对话信息填写框提供用户输入。
对话页参数配置
节点是一个悬浮节点,拖入后不需要进行前后节点连接。
将应用部署后可以在平台的分享
处获得Web应用的链接,下面将给出一个完整的对话例子及请求数据:
对话页参数配置:
对话页面:
请求数据: