Sping AI

Spring AI

核心功能包括支持20个AI模型的ChatClient接口、适配20个向量数据库的检索模块、支持滑动窗口和向量搜索的对话记忆功能、基于@Tool注解的工具调用机制,以及模型评估、可观测性和Model Context Protocol(MCP)支持。此外,新增RAG流水线、ETL框架、工作流驱动和自主代理功能,并提供与微软Azure、AWS、Google Cloud等云服务商的集成案例。

1. ChatClient核心接口

  • 作为与AI模型交互的主要接口,支持20个AI模型(如Anthropic、ZhiPu、DeepSeek、MiniMax等),涵盖多模态输入输出(若模型支持)和JSON格式结构化响应。

2. 检索增强生成(RAG)与向量数据库

  • 向量存储抽象:适配20个向量数据库(如Azure Cosmos DB、Weaviate),支持SQL-like过滤语言及原生查询回退。
  • ETL框架:通过可插拔DocumentReader支持本地文件、网页、GitHub、云存储(AWS S3、Azure Blob等)及数据库输入,内置分块、元数据 enrichment 和嵌入生成。
  • RAG流水线:基础QuestionAnswerAdvisor和模块化RetrievalAugmentationAdvisor

3. 对话记忆(ChatMemory)

  • 基础实现MessageWindowChatMemory通过滑动窗口存储最近N条消息,支持JDBC、Cassandra、Neo4j等持久化存储。
  • 高级功能VectorStoreChatMemoryAdvisor基于向量搜索检索语义相似历史消息。参考案例《Guide to chat memory implementation》

4. 工具调用(Function Calling)

  • 通过@Tool注解声明工具方法,支持动态注册Bean或编程式创建,可调用天气查询、数据库操作等外部功能。配套《Guide to local tool calling》
1
2
3
4
5
6
7
8
9
10
11
12
13
@Component
class DogAdoptionScheduler {

@Tool(description = "schedule an appointment to pickup or adopt a " +
"dog from a Pooch Palace location")
String schedule(int dogId, String dogName) {
System.out.println("Scheduling adoption for dog " + dogName);
return Instant
.now()
.plus(3, ChronoUnit.DAYS)
.toString();
}
}

5. 模型评估与可观测性

  • 评估组件RelevancyEvaluator验证响应相关性,FactCheckingEvaluator基于上下文校验事实准确性,引用Hugging Face专家指出“LLM作为裁判”的局限性(如模式崩溃、冗长偏见)。
  • 可观测性:集成Micrometer追踪模型延迟、Token使用、工具调用等指标,支持日志记录和Micrometer Tracing。

6. 模型上下文协议(MCP)

  • 客户端:通过spring-ai-starter-mcp-client快速连接MCP服务器,支持stdio和HTTP-SSE端点,示例连接Brave搜索引擎。
  • 服务器:使用spring-ai-starter-mcp-server@Tool注解构建MCP服务器,集成Spring Batch/Cloud Config提供企业级工具,支持OAuth安全认证。

7. 代理支持

  • 工作流驱动代理:包含评估优化(自评估响应)、路由(智能分配请求)、编排(动态任务分解)、链式(分步处理)、并行化(批量调用聚合结果)等模式。
  • 自主代理:通过MCP动态发现工具,维护执行记忆,支持递归策略优化,孵化项目Spring MCP Agent演示相关能力。
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2025 Immanuel
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

微信