先做个广告:如需代注册GPT帐号或代充值ChatGPT4会员,请添加站长客服微信:gpt-app
对于Plus用户,GPT-4的使用限额从25条/3h提升至50条(整整提升1倍~ $20的订阅费又更超值了) 新增 Custom instructions (个性化指令),简单可以理解为个人角色和期望回答定义
【 Why instructions?】
{
"instruction": "将不同颜色混合后的结果",
"input": "红色、黄色",
"output": "橙色"
}
对比指令和提示词,指令更像是引导指示命令的意思,提示词更像是可参考可引用的意思,这种语义上的细微差别,还是相当有意思的~
推荐使用ChatGPT中文版,国内可直接访问:https://ai.p6p6.cn
【 2. 配置 】
然后打开Custom instructions 进行自定义指令的输入。指令的输入分为2部分:
配置项:个人简介
官网的提示信息如下,简单来说就是一些关于个人信息的关键提取:
Where are you based? — 所在地点
What do you do for work? — 工作内容
What are your hobbies and interests? — 兴趣爱好
What subjects can you talk about for hours? — 最近交谈关注的事项
What are some goals you have? — 目标与计划
配置项:如何回答
官网的提示信息如下,主要是关于GPT输出格式和风格的定义:
How formal or casual should ChatGPT be? -- 聊天语气
How long or short should responses generally be? -- 回答的长短
How do you want to be addressed? — 你希望被如何称呼
Should ChatGPT have opinions on topics or remain neutral? — 对话题持有观点还是保持中立
对比效果(开启个性化指令)
开启个性化指令(前端工程师 # 代码 解决方案 Typescript),相同的问题GPT的输出会参考我的身份和我所期望的回答内容,建议采用Jest,并且给出完整的安装配置教程。
【 4. 总结 】
我们在用户反馈中发现,每次开始ChatGPT对话都需要重新加上固定提示词所带来的不便。通过与22个国家的用户进行交流,我们加深了对角色定义和操作定义在使用LLM时的重要性认识,这些定义指令能够有效反映各种背景和每个人独特需求方面。
【 2. 通过systemMessage实现 】
system(系统) assistant(GPT助手) user(用户)
AssistantProfile(助手简介): 京东资深前端工程师、面试官 UserProfile(用户简介): 前端实习生,名字叫小方 AssistantReplyStyle(助手回复风格): 主动提问、严肃客观、全面考察
[
{
"role": "system",
"content": "#AssistantProfile: 京东面试官\\n #Userprofile: 应届前端实习生\\n #AssistantReplyStyle: 主动提问、严肃客观、全面考察"
},
{
"role": "user",
"content": "你好面试官,我准备好了"
}
]
【 3. 关键代码实现如下 】
"HiBox.config.chatgptProfiles": {
"type": "array",
"default": [{ "assistantProfile": "由OpenAI训练的大语言模型-ChatGPT", "userProfile": "", "answerStyle": "简洁" }],
"markdownDescription": "调用ChatGPT时自定义的指令,支持配置多个",
"items": {
"type": "object",
"properties": {
"assistantProfile": {
"type": "string",
"description": "定义ChatGPT的角色/名称等,例如:面试官、名字是小爱同学"
},
"userProfile": {
"type": "string",
"description": "定义你的个人信息,例如:我叫小明,在京东集团做前端开发"
},
"AssistantReplyStyle": {
"type": "string",
"description": "定义ChatGPT的回答倾向,例如:详细、中文、尽量用代码回答"
}
}
}
}
3.2 在调用GPT时读取Profile传给systemMessage
export function getSystemMessageWithProfile() {
// 读取用户设置的个性化指令(中文模板,易于用户理解)
const profileStr = GlobalState.get('chatgptCurrentProfile');
// 改成英文(英文模板,提升权重)
return profileStr
.replace('[系统简介]', '#AssistantProfile')
.replace(' [个人简介]', '\\n#UserProfile')
.replace(' [回答风格]', '\\n#AssistantReplyStyle');
}
// 请求GPT的时候
const body = {
// ...
systemMessage: getSystemMessageWithProfile() || '你是ChatGPT,由OpenAI训练的大型语言模型,请尽可能简洁地回答。',
};