V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
biuyixia
V2EX  ›  程序员

哪位大佬对大模型调用比较熟悉啊,求问。

  •  
  •   biuyixia · 6 小时 52 分钟前 · 1070 次点击

    https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html#_3-%E8%AF%B7%E6%B1%82%E8%AF%B4%E6%98%8E

    讯飞的这个大模型调用,官方的调用示例如下:

    "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 。

    10 条回复    2025-12-08 15:41:13 +08:00
    biuyixia
        1
    biuyixia  
    OP
       6 小时 50 分钟前
    messages.role 角色:user 表示用户,assistant 表示大模型,system 表示命令,tool 代表 function call 执行结果
    clemente
        2
    clemente  
       6 小时 44 分钟前
    固定任务重复的话 放"role": "system" 里面

    降低用户指令冗余:不用每次在 user 内容里重复 “要准确”“要自然”,把固定要求放在 system 里,后续只传待翻译文本即可,更简洁。
    hnliuzesen
        3
    hnliuzesen  
       6 小时 43 分钟前
    如果有页面的话,正常 system 的内容用户是看不到的,可以写不能帮助用户做什么,应该怎么做,system 提示词会影响 LLM 效果,Anthropic 之前被套出的系统提示词里面展示了他们用系统提示词给 LLM 打补丁,让 LLM 知道最新的新闻。
    不过像 cherry studio 里面 system 用户是能看到的,你创建不同的 Assistant 主要区别是 system 提示词不同。
    Muniesa
        4
    Muniesa  
       6 小时 40 分钟前
    system 可以设置对模型进行初始设定,一般模型会优先遵循 system 的设定,后面 user 就不需要再重复了。比如你的写法 2 里,user 直接传 english_text 也是可以直接翻译的
    Absofknglutely
        5
    Absofknglutely  
       6 小时 30 分钟前
    系统提示词, 可以理解为 base
    ihainan
        6
    ihainan  
       6 小时 20 分钟前
    多轮对话一般是这样的:

    <system_prompt>

    <user_query_1>

    <llm_answer_1>

    ...

    <user_query_n>

    系统提示词一般放全局性的角色定义、背景知识、指令、One-Shot/Few-Shot ,一方面系统提示词的优先级会比较高,其次不用每次都让用户重复定义,以及可以使用 Prefix Cache 做加速。另外也不是所有模型都支持 System Role 。
    yuuluu
        7
    yuuluu  
       6 小时 8 分钟前
    补充一个上面没有提到的点,对话中相同的前缀会被 cache ,不仅更快,而且省钱。
    kirazi
        8
    kirazi  
       6 小时 2 分钟前
    给了开发者着一个运用提示词优化回答的窗口,可以在模型回复不达标时,通过 system 提示词简单调整。
    比如期望翻译的更加口语化或者更加书面化,这些要求用户一般不会自己写明,但是可以自己预置在 system 提示词内使模型的回复达到更多人的预期。
    biuyixia
        9
    biuyixia  
    OP
       5 小时 57 分钟前
    好的,明白了,谢谢以上大佬。
    Charon2050
        10
    Charon2050  
       41 分钟前
    另外,大模型更服从 system 提供的信息。举例:

    User: 根据最新消息,RTX 5090 显卡已发布。我可以在哪里买到 5090 显卡?
    Assistant: 很抱歉,我的数据集截止至 2024-2 ,因此无法得知 RTX 5090 显卡是否已发布…

    System: 根据最新消息,RTX 5090 显卡已发布。
    User: 我可以在哪里买到 5090 显卡?
    Assistant: 你可以在华硕、七彩虹等硬件商的官方店铺购买…
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5199 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 08:22 · PVG 16:22 · LAX 00:22 · JFK 03:22
    ♥ Do have faith in what you're doing.