006_prompt

prompt 是什么

提示词 的核心价值是标准化大模型的输入指令

  • 通过自然语言或结构化语言(如 JSON、XML)告诉模型 "要做什么、输入是什么、输出格式是什么"。
  • 例如:"请将以下文本翻译成英文,输入:'你好世界',输出格式为纯英文句子"
  • 使用者和大模型只要遵守提示词的约定,就能减少模型的 "幻觉",得到预期结果。

prompt 提示词类型

提示词消息分成了多种角色。每个消息都被分配了特定的角色。 这些角色负责对信息进行分类,明确提示中每个部分的上下文和目的,供AI模型使用。 这种结构化的方法增强了与AI沟通的细腻度和有效性,因为提示的每个部分在互动中都扮演着独特且明确的角色。

主要职责包括:

  • 系统角色:指导AI的行为和响应风格,设定AI如何解释和响应输入的参数或规则。这就像在发起对话前先给AI提供指令。
  • 用户角色:代表用户的输入------他们对AI的问题、命令或陈述。这一角色至关重要,因为它构成了人工智能应对的基础。
  • 助理角色:AI对用户输入的回应。 这不仅仅是一个回答或反应,更对于保持对话的流畅性至关重要。 通过追踪AI之前的回复(其"助理角色"消息),系统确保互动连贯且符合上下文。 助手消息也可能包含功能工具调用请求信息。 它就像AI中的一个特殊功能,用于执行特定功能,比如计算、获取数据或其他不仅仅是说话的任务。
  • 工具/功能角色:工具/功能角色专注于回复工具呼叫助手消息时返回更多信息。

1. SYSTEM(系统角色)

  • 核心用途 :定义大模型的行为准则、角色定位、能力边界和全局约束,相当于给模型设定 "工作手册",贯穿整个对话流程。

  • 特点:优先级较高,会影响模型后续所有回复的风格、逻辑和范围,通常在对话开头传入,无需频繁修改。

  • 示例

    java 复制代码
    // 系统消息:定义模型为Java技术助手,指定回答约束
    SystemMessage systemMsg = new SystemMessage("你是一名资深Java开发顾问,回答需简洁专业,仅围绕技术问题,不涉及无关内容");

2. USER(用户角色)

  • 核心用途 :代表用户的输入、问题、指令或需求,是触发模型回复的核心消息类型。

  • 特点:在多轮对话中可多次出现,每一条用户消息通常对应一条助手回复,携带用户的具体诉求。

  • 示例

    java

    运行

    java 复制代码
    // 用户消息:提出具体技术问题
    UserMessage userMsg = new UserMessage("请解释Spring AI中PromptTemplate的作用");

3. ASSISTANT(助手角色)

  • 核心用途 :代表大模型返回的回答、生成结果或反馈 ,主要用于携带对话上下文,让模型记住之前的交互内容,实现多轮连贯对话。

  • 特点:通常由模型生成后存储,在后续对话中随用户新消息一起传入,供模型参考历史交互。

  • 示例

    java

    运行

    java 复制代码
    // 助手消息:模拟模型之前的回复(作为上下文)
    AssistantMessage assistantMsg = new AssistantMessage("PromptTemplate用于封装可复用的提示词模板,通过占位符填充参数,提升

4. FUNCTION / TOOL(函数 / 工具角色,两者功能一致,命名略有差异)

  • 核心用途:有两个核心场景:

    1. 模型向外部系统发送工具调用请求:携带函数名称、参数等结构化信息,告知应用程序需要调用哪个工具完成任务。
    2. 外部系统向模型返回工具调用结果:将工具执行后的返回数据传递给模型,供模型基于该结果生成最终回复。
  • 特点 :需要配合结构化参数传递,是实现 "AI + 工具" 能力的关键角色(Spring AI 中常用FunctionMessage实现)。

  • 示例

    java 复制代码
    // 1. 模型发送工具调用请求(函数角色:指定要调用的天气查询工具及参数)
    Map<String, Object> funcParams = Map.of("city", "上海", "date", "2025-12-22");
    FunctionMessage funcCallMsg = new FunctionMessage("get_weather_info", funcParams);
    
    // 2. 外部工具执行后,返回结果给模型(同样用FunctionMessage承载)
    FunctionMessage funcResultMsg = new FunctionMessage("get_weather_info", Map.of("temperature", "10℃", "weather", "多云"));

补充:TOOL_CALL(工具调用请求)与TOOL_RESULT(工具调用结果)

部分大模型适配场景中,Spring AI 会细分这两个角色,职责更明确:

  • TOOL_CALL:仅用于模型发起工具调用请求,不承载结果。
  • TOOL_RESULT:仅用于返回工具执行结果,与TOOL_CALL一一对应,结构更清晰。
相关推荐
王中阳Go2 小时前
攻克制造业知识检索难题:我们如何用Go+AI打造高可用RAG系统,将查询效率提升600%
人工智能·后端·go
悟空码字2 小时前
SpringBoot接口防抖大作战,拒绝“手抖”重复提交!
java·spring boot·后端
用户908324602732 小时前
SpringBoot+Spring AI 构建企业知识库
openai
与遨游于天地2 小时前
Spring 的10个核心能力,对框架开发的启示
java·后端·spring
shiwulou13 小时前
神经网络和深度学习 第三周:浅层神经网络(一)正向传播
后端
IT_陈寒3 小时前
Redis实战精要:5种高频使用场景与性能优化全解析|得物技术
前端·人工智能·后端
疯狂的程序猴3 小时前
iOS 证书如何创建,从能生成到能长期使用
后端
Coder_Boy_3 小时前
【人工智能应用技术】-基础实战-小程序应用(基于springAI+百度语音技术)智能语音控制-单片机交互代码
java·人工智能·后端·嵌入式硬件
IMPYLH3 小时前
Lua 的 OS(操作系统) 模块
开发语言·笔记·后端·游戏引擎·lua