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一一对应,结构更清晰。
相关推荐
余槐i4 分钟前
无慢查询 RT 却飙升:cProfile 定位 FastAPI 事件循环阻塞
后端·python·性能优化·fastapi·asyncio
AINative软件工程12 分钟前
LLM 应用的 Adaptive Batching 工程实践:动态合批把吞吐提升 3 倍,但延迟的坑你踩过吗
后端·llm·ai编程
parser23 分钟前
Python 装饰器:从语法糖、闭包到 @wraps(上篇)
后端
高频因子挖掘机23 分钟前
股票池一大就请求缓慢?量化系统批量获取行情的设计与优化
后端·github·api
郑州光合科技余经理24 分钟前
本地生活平台搭建:跨业态用户标识怎么贯通
java·开发语言·前端·后端·uni-app·php·ai编程
Thneonl30 分钟前
故意弄坏生产:混沌工程不是乱砸,是实验设计
后端·程序员
Thneonl39 分钟前
别上来就 strace:60 秒十条命令看清一台病机
后端·程序员
马剑威(威哥爱编程)1 小时前
【AI全栈后端12-11】Spring Boot 把 AI 接口真正上线扛量:限流 / 降级 / 可观测
人工智能·spring boot·后端
tachibana21 小时前
Golang 中数组和切片的区别?
开发语言·后端·golang·数组·切片
我是人✓1 小时前
Spring IOC注解全解析和Spring整合测试单元
java·后端·spring