Java面试题更新 2026-08-05

解释一下 Re-Reading 的含义,并说明在 Spring AI 中如何实现一个 Re-Reading Advisor?

后端开发编码实现技术原理Spring AI

考察说明

考查候选人是否理解 Re-Reading 这一提示工程技巧,以及能否在 Spring AI 框架中通过 Advisor 机制落地实现。

回答思路

  1. 【回答框架 1】Re-Reading 是一种提示工程技术,核心是让模型在回答前重新阅读一遍输入内容,以增强对问题细节的捕捉,减少因遗漏或误解导致的错误回答。其出发点是通过重复输入来强化关键信息,尤其在长文本或多步推理任务中效果明显。
  2. 【回答框架 2】在 Spring AI 中,Advisor 是一种拦截器机制,可以作用于请求和响应链路。实现 Re-Reading Advisor 需要实现 Advisor 接口,在 around 方法中修改请求,通常是在原始输入文本之前或之后拼接一段指令,例如“请重新阅读以上内容”,然后将修改后的 Prompt 交给后续链路处理。
  3. 【回答框架 3】具体实现时,需要继承 RequestResponseAdvisor 或实现相关接口,在 around 方法中获取用户输入,构建新字符串,再构造新的 Prompt 对象传入 chain.next(新请求)。注意保持消息格式的一致性,并根据模型类型正确传递文本或结构化消息对象。
  4. 【回答框架 4】为确保效果,可以设计为可配置的 Advisor,例如通过开关控制是否启用,或者设置重读次数。同时要考虑与分布式链路追踪的集成,以及对 token 消耗的影响,需要在效果和成本之间权衡。
  5. 【回答框架 5】最终验证可通过对比实验,设置对照组和实验组,用特定评测集评估重读前后模型回答的准确率或相关性,以证明该 Advisor 的实际价值。
  6. 【关键点 1】Re-Reading 属于提示工程,通过重复输入提升模型对细节的注意力。
  7. 【关键点 2】Spring AI Advisor 是面向横切关注点的拦截器,可修改请求内容。
  8. 【关键点 3】实现时需构造新的 Prompt 并传给后续 chain。
  9. 【关键点 4】注意 token 成本,可通过配置控制启用和重读次数。
  10. 【关键点 5】建议用评测数据验证实际效果,而非盲目叠加。
  11. 【易错点 1】不要以为 Re-Reading 对任何问题都有效,简单场景可能无增益。
  12. 【易错点 2】修改 Prompt 时要保留原始用户意图,避免引入偏差。
  13. 【易错点 3】处理多模态或结构化消息时需适配相应消息类型,防止类型错误。