System/User Prompt

维度 System Prompt (系统提示词) User Prompt (用户提示词)
定义与提供者 由开发者或系统设计者预先设定,用于定义模型的"角色"或"人格",设定对话的全局规则和约束。 由最终用户在每次交互时输入,用于提出具体的问题、请求或提供上下文信息。
主要目的 设定框架与规则。它塑造模型的"世界观"和行为模式,确保模型在整个会话中保持一致性、安全性和专业性。 执行具体任务。它向模型发出明确的行动指令,是驱动模型产生特定输出的直接原因。
作用范围 全局性、持久性。在单次对话或整个应用生命周期内持续生效,影响模型对所有User Prompt的理解和回应方式。 局部性、临时性。仅影响模型对当前这一次请求的回应。
内容示例 "你是一位资深Java开发专家,回答应专业、准确。请用中文回答,并优先提供代码示例。" "请用Java编写一个快速排序算法,并添加详细注释。"
灵活性 相对固定,通常在对话开始或应用初始化时设定,不频繁更改。 高度灵活,用户可以自由输入任何问题或指令。
优先级 更高。它为模型提供了基础的行为准则,User Prompt的解读和执行都在此框架下进行。 较低。其执行不能违背System Prompt设定的核心规则(如"不回答非法内容")。

协同

1. System Prompt:模型的"宪法"与角色扮演指南

System Prompt的核心在于定义边界和塑造身份。它不仅仅是一个简单的指令,更是模型在本次交互中的"行为准则"或"角色设定"。例如,它可以用来:

  • 设定角色:让模型扮演特定专家(如医生、律师、代码审查员)。
  • 规定格式:要求回答必须包含要点列表、代码块,或遵循特定的结构化模板(如RTF框架:Role, Task, Format)。
  • 施加约束:限制回答长度、禁止讨论某些话题、要求引用来源等。
  • 提供上下文:注入领域知识、公司规范或对话历史摘要,使模型在特定语境下工作。

2. User Prompt:具体的任务指令与交互触发器

User Prompt是用户意图的直接表达,其质量直接决定输出结果的好坏。一个优秀的User Prompt应具备清晰、具体、有上下文的特点。例如:

  • 模糊的User Prompt:"给我讲讲Python。"
  • 优秀的User Prompt:"我是一名有JavaScript基础的新手,想学习Python进行数据分析。请对比Python和JavaScript在数据处理语法上的主要差异,并给出一个使用Pandas库读取CSV文件的Python代码示例。"

3. 协同工作流程

在实际交互中,两者协同工作,形成"框架-指令"的配合模式。模型的处理逻辑可以抽象为以下伪代码流程:

python 复制代码
# 伪代码示意 System Prompt 与 User Prompt 的协同处理流程 [结合 ref_2, ref_4, ref_5]
def model_inference(system_prompt, user_prompt):
    """
    模拟大模型接收并处理提示词的过程。
    system_prompt: 系统提示词,设定全局角色和规则。
    user_prompt: 用户提示词,提出具体请求。
    """
    # 步骤1:加载并内化System Prompt,建立响应基线 
    internal_context = initialize_model_with(system_prompt)  # 模型根据System Prompt设定内部状态和角色
    
    # 步骤2:在System Prompt设定的框架下,解析User Prompt的意图 
    if violates_constraints(system_prompt, user_prompt):  # 检查用户请求是否违反系统设定(如安全规则)
        return generate_refusal_response(system_prompt)  # 若违反,则按系统要求拒绝回答
    else:
        task_intent = parse_intent(user_prompt)  # 解析用户的具体任务
        
    # 步骤3:结合两者,生成最终响应 
    final_response = generate_response(
        context=internal_context,  # 基于系统设定的角色/规则
        task=task_intent,          # 基于用户的具体指令
        format=get_format_requirement(system_prompt)  # 遵循系统要求的格式
    )
    return final_response

# 示例调用
system_msg = "你是一位乐于助人的编程助手,擅长Python。回答请简洁,并优先提供代码。"
user_msg = "如何用Python反转一个字符串?"
answer = model_inference(system_msg, user_msg)
print(answer)
# 预期输出将是一个包含Python代码(如`"hello"[::-1]`)的简洁解释,而不是一篇关于字符串历史的长篇大论。

示例

场景一:构建专业客服Agent

  • System Prompt:"你是XX公司的AI客服,态度热情、专业。你的知识截止于2023年12月。对于产品问题,请依据提供的知识库回答;对于未知问题,请引导用户联系人工客服。回答需用中文,并分点说明。"
  • User Prompt:"我的订单#12345显示已发货,但一周没收到,怎么办?"
  • 分析:System Prompt设定了客服角色、知识边界、回答格式和兜底策略。User Prompt则提供了具体的查询案例。模型会在"客服"角色下,调用相关知识(如果知识库中有物流查询流程),并可能以分点形式回复操作步骤。

场景二:代码生成与审查

  • System Prompt:"你是一个严格的代码审查专家。请检查用户提供的代码,首先指出潜在bug、性能问题和风格不符(PEP 8)之处,然后给出修改后的优化版本。使用Markdown代码块。"
  • User Prompt:(粘贴一段存在缩进错误和低效循环的Python代码)
  • 分析 :System Prompt将模型锁定在"代码审查专家"角色,并规定了结构化的输出格式(先问题,后优化代码)。User Prompt提供审查对象。这使得输出高度结构化、专业化,远超一个通用模型对同一段代码的简单评价。

sum

  • System Prompt是战略层的设定,它塑造了模型的"人格"和对话的"游戏规则"
  • 而User Prompt是战术层的指令,负责在既定规则下完成具体动作

在实际开发中,往往需要通过迭代优化System Prompt来约束模型行为,同时精心设计User Prompt(或通过Few-shot示例在System Prompt中提供)来精准触发所需能力

相关推荐
Hello.Reader2 小时前
双卡 A100 + Ollama 生产部署从安装、踩坑、调优到最终可上线方案
linux·人工智能·算法
AC赳赳老秦2 小时前
OpenClaw阿里云部署实操:多Agent协同,打造云端自动化工作流
人工智能·阿里云·数据挖掘·自动化·云计算·deepseek·openclaw
Linux猿2 小时前
云朵照片数据集,YOLO 目标检测 | 附数据集
人工智能·yolo·目标检测·图像分类·目标检测数据集·yolo目标检测·云朵照片数据集
Cosolar2 小时前
超越基础 CRUD:LangChain-Chroma 在高并发场景下的架构设计与瓶颈突破
人工智能·后端·面试
Omics Pro2 小时前
Cell|全球微生物群落整合数据库
人工智能·语言模型·自然语言处理·数据挖掘·数据分析
AI智域边界 - Alvin Cho2 小时前
attas 现已开源,探索金融 AI 下一步该走向哪里
人工智能·金融
管二狗赶快去工作!2 小时前
体系结构论文(九十):Automated Multi-Agent Workflows for RTL Design
人工智能
一念春风2 小时前
DDColor (AI)
人工智能
Coovally AI模型快速验证2 小时前
YOLO训练可以偷懒?Anti-Forgetting Sampling跳过已学会的图片加速收敛
人工智能·yolo·视觉检测·异常检测·工业质检