核心架构与版本演进

  1. 在 Spring AI 中,ChatClient 与 ChatModel 的关系是什么?ChatClient 是如何通过 Advisor 责任链驱动整个请求处理流程的?
  2. Spring AI 2.0 在工具调用(Tool Calling)机制上做了哪些重大重构?为什么 2.0 版本移除了 chatOptions.setToolNames() 并强制要求显式传入 ToolCallback 对象?
  3. 在 Spring AI 2.0 中,如果直接使用 chatModel.call(prompt) 且依赖模型处理工具调用,为什么不再自动执行工具?正确的调用入口应该是什么?
  4. 相比于 LangChain4j,Spring AI 在 Spring 生态中的自动装配(Auto-configuration)机制有何优势?如何解决多 Bean 冲突及 Advisor 注册方式的问题?

RAG(检索增强生成)实战

  1. 基础 RAG 在实际项目中存在哪些局限性(如语义偏差、检索排序不准等)?请描述你如何通过“混合检索 + 查询重写 + 重排序(Reranking)+ 上下文压缩”将准确率优化到 90% 以上?
  2. 为什么在 RAG 系统中,重排序(Reranking)往往比单纯更换一个更好的嵌入模型(Embedding Model)更重要?
  3. 在企业级 RAG 架构中,PgVector、Redis 和 Milvus 等向量数据库应如何选型?HNSW 索引与余弦相似度(COSINE)配置在实际生产中的调优经验是什么?
  4. 使用 QuestionAnswerAdvisor 实现 RAG 时,文档的切分粒度(TokenTextSplitter)对检索效果有什么影响?如何避免上下文冗余?

工具调用(Function Calling)与 Agent

  1. 在 Spring AI 中使用 @Tool@ToolParam 注解时,如何编写高质量的 description 以避免大模型在复杂场景下乱调接口或选错工具?
  2. 针对 Agent 自主调用外部 API(如订单查询、退款申请)的场景,如何在架构设计上防止 AI 幻觉并保证敏感写操作的安全可控?
  3. 什么是 MCP(Model Context Protocol)?Spring AI 2.0 将 MCP 的默认传输协议从 SSE 改为 Streamable HTTP 解决了哪些生产级扩展问题?
  4. 面对异构 AI 模型(如 OpenAI 与 Claude)的“工具调用”响应,如何利用“两层模型 + 多态反序列化 + 工厂模式”实现内部 AgentAction 的统一处理?

工程化、高并发与可观测性

  1. 如果要设计一个支持 10 万 QPS 的 AI 服务接口,在接入层、业务层和 AI 推理层应分别采用哪些弹性伸缩与高并发策略(如请求批处理、模型量化、WebSocket 流式响应)?
  2. 如何通过 Spring Boot Actuator、Micrometer 与 Prometheus/Grafana 构建 AI 应用的全链路可观测性平台,实现精确到每次调用的 Token 消耗与成本核算?
  3. 在处理跨服务的 AI 训练数据流水线或复杂工作流时,如何结合事件溯源与 Saga 模式处理补偿事务,以保证最终一致性?
  4. Spring AI 的 MessageChatMemoryAdvisor 是如何管理多轮对话上下文的?在长文本总结或复杂 AI 审核场景中,如何设计 API 的响应结构与条件请求(ETag)?

By admin

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注