讯飞的这个大模型调用,官方的调用示例如下:
"messages": [
{
"role": "system",
"content": "你是知识渊博的助理"
},
{
"role": "user",
"content": "你好,讯飞星火"
}
]
如果我用它进行翻译 写法 1:
"messages": [
{
"role": "user",
"content": f"请将以下英文翻译成中文:\n\n{english_text}"
}
]
写法 2 ( AI 给出):
{
"role": "system",
"content": "You are a professional translator. Translate English to Chinese accurately, naturally, and maintain the original tone and context."
},
{
"role": "user",
"content": f"请将以下英文翻译成中文:\n\n{english_text}"
}
疑问的一个点在于,这个 role 为 system 的作用在哪?写法 1 和写法 2 翻译结果差不多,官方文档示例写了两个角色反而增加了困惑,有没有必要加这个 role:system 。
1
biuyixia OP messages.role 角色:user 表示用户,assistant 表示大模型,system 表示命令,tool 代表 function call 执行结果
|
2
clemente 6 小时 44 分钟前
固定任务重复的话 放"role": "system" 里面
降低用户指令冗余:不用每次在 user 内容里重复 “要准确”“要自然”,把固定要求放在 system 里,后续只传待翻译文本即可,更简洁。 |
3
hnliuzesen 6 小时 43 分钟前
如果有页面的话,正常 system 的内容用户是看不到的,可以写不能帮助用户做什么,应该怎么做,system 提示词会影响 LLM 效果,Anthropic 之前被套出的系统提示词里面展示了他们用系统提示词给 LLM 打补丁,让 LLM 知道最新的新闻。
不过像 cherry studio 里面 system 用户是能看到的,你创建不同的 Assistant 主要区别是 system 提示词不同。 |
4
Muniesa 6 小时 40 分钟前
system 可以设置对模型进行初始设定,一般模型会优先遵循 system 的设定,后面 user 就不需要再重复了。比如你的写法 2 里,user 直接传 english_text 也是可以直接翻译的
|
5
Absofknglutely 6 小时 30 分钟前
系统提示词, 可以理解为 base
|
6
ihainan 6 小时 20 分钟前
多轮对话一般是这样的:
<system_prompt> <user_query_1> <llm_answer_1> ... <user_query_n> 系统提示词一般放全局性的角色定义、背景知识、指令、One-Shot/Few-Shot ,一方面系统提示词的优先级会比较高,其次不用每次都让用户重复定义,以及可以使用 Prefix Cache 做加速。另外也不是所有模型都支持 System Role 。 |
7
yuuluu 6 小时 8 分钟前
补充一个上面没有提到的点,对话中相同的前缀会被 cache ,不仅更快,而且省钱。
|
8
kirazi 6 小时 2 分钟前
给了开发者着一个运用提示词优化回答的窗口,可以在模型回复不达标时,通过 system 提示词简单调整。
比如期望翻译的更加口语化或者更加书面化,这些要求用户一般不会自己写明,但是可以自己预置在 system 提示词内使模型的回复达到更多人的预期。 |
9
biuyixia OP 好的,明白了,谢谢以上大佬。
|
10
Charon2050 41 分钟前
另外,大模型更服从 system 提供的信息。举例:
User: 根据最新消息,RTX 5090 显卡已发布。我可以在哪里买到 5090 显卡? Assistant: 很抱歉,我的数据集截止至 2024-2 ,因此无法得知 RTX 5090 显卡是否已发布… System: 根据最新消息,RTX 5090 显卡已发布。 User: 我可以在哪里买到 5090 显卡? Assistant: 你可以在华硕、七彩虹等硬件商的官方店铺购买… |