# spring-ai-extensions **Repository Path**: raindeng/spring-ai-extensions ## Basic Information - **Project Name**: spring-ai-extensions - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-11 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring AI Alibaba 扩展 本项目基于 Spring AI 构建,提供了对核心概念的扩展实现,如 `ChatModel`、`ImageModel`、`AudioModel`、`MCP`、`DocumentParser`、`ChatMemory`、`ToolCallback`、`VectorStore` 等。帮助开发者快速集成阿里云百炼模型服务、向量数据库服务、聊天记忆组件、工具调用等功能。 基于这些组件,开发者可以使用 Spring AI [ChatClient](https://java2ai.com/docs/1.0.0.2/tutorials/basics/chat-client/),或 [Spring AI Alibaba Agent 框架](https://github.com/alibaba/spring-ai-alibaba) 快速构建自己的 AI 智能体应用。请根据您的具体使用场景选择。 [📖 English Version](README.md) | [中文版](README-zh.md) ## 快速开始 ### 前置条件 1. 需要 JDK 17+ 2. 如果遇到任何 `spring-ai` 依赖问题,请查看 [FAQ 页面](https://java2ai.com/docs/1.0.0.2/faq) 了解如何配置 `spring-milestones` Maven 仓库 ### 使用 `ChatClient` 开发聊天机器人 #### 添加依赖 要快速开始使用 Spring AI Alibaba,请在您的 Java 项目中添加 `spring-ai-alibaba-starter-dashscope` 依赖。 ```xml com.alibaba.cloud.ai spring-ai-extensions-bom 1.1.2.0 pom import com.alibaba.cloud.ai spring-ai-alibaba-starter-dashscope ``` 如需使用基于 DashScope Java SDK 的聊天模型实现,可改用 SDK starter: ```xml com.alibaba.cloud.ai spring-ai-alibaba-starter-dashscope-sdk ``` 并配置 `spring.ai.model.chat=dashscope-sdk`。 #### 声明 ChatClient 声明一个 `ChatClient` 实例,将会自动注入 `DashScopeChatModel`。 ```java @RestController @RequestMapping("/helloworld") public class HelloworldController { private static final String DEFAULT_PROMPT = "你是一个博学的智能聊天助手,请根据用户提问回答!"; private final ChatClient dashScopeChatClient; public HelloworldController(ChatClient.Builder chatClientBuilder) { this.dashScopeChatClient = chatClientBuilder .defaultSystem(DEFAULT_PROMPT) .defaultAdvisors( new SimpleLoggerAdvisor() ) .defaultOptions( DashScopeChatOptions.builder() .topP(0.7) .build() ) .build(); } @GetMapping("/simple/chat") public String simpleChat(@RequestParam(value = "query") String query) { return dashScopeChatClient.prompt(query).call().content(); } } ``` 请访问我们官网的 [快速开始](https://java2ai.com/docs/1.0.0.2/get-started/chatbot) 了解更多详情。 ### 使用 Agent 框架开发智能体 // 待补充 ## 示例和演示 社区开发了一个包含完整前端 UI 和后端实现的 [Playground](https://github.com/springaialibaba/spring-ai-alibaba-examples/tree/main/spring-ai-alibaba-playground) 智能体。Playground 后端使用 Spring AI Alibaba 开发,让用户快速体验聊天机器人、多轮对话、图像生成、多模态、工具调用、MCP、RAG 等所有核心框架能力。

PlayGround

您可以[本地部署 Playground 示例](https://github.com/springaialibaba/spring-ai-alibaba-examples)并通过浏览器访问体验,或复制源代码并调整到您自己的业务需求,更快速地构建自己的 AI 应用套件。 更多示例请参考我们的官方示例仓库:[https://github.com/springaialibaba/spring-ai-alibaba-examples](https://github.com/springaialibaba/spring-ai-alibaba-examples) ## 可用扩展 * 模型 (Model) * 模型上下文协议 (MCP) * 工具回调 (ToolCallback) * 向量存储 (VectorStore) * 聊天记忆 (ChatMemory) * 检索增强生成 (RAG) * 文档解析器和文档读取器 (DocumentParser & DocumentReader) * 提示词管理 (Prompt Management) * 观测和监控 (Observation) ### 模型 Spring AI Alibaba 通过 DashScope(阿里云 AI 模型服务平台)提供全面的模型实现: #### DashScopeChatModel DashScope 聊天模型提供对阿里云百炼大语言模型服务的访问,支持 Qwen 系列、Deepseek 系列模型。 DashScopeChatModel 支持: - 多轮对话 - 函数调用 / 工具使用 - 流式响应 - 结构化输出 #### DashScopeSdkChatModel 基于 DashScope Java SDK 的聊天模型实现。使用 `spring-ai-alibaba-starter-dashscope-sdk` 并配置 `spring.ai.model.chat=dashscope-sdk` 即可启用。 #### DashScopeSdkImageModel 基于 DashScope Java SDK 的图像模型实现。使用 `spring-ai-alibaba-starter-dashscope-sdk` 并配置 `spring.ai.model.image=dashscope-sdk` 即可启用。 #### DashScopeSdkEmbeddingModel 基于 DashScope Java SDK 的向量模型实现。使用 `spring-ai-alibaba-starter-dashscope-sdk` 并配置 `spring.ai.model.embedding=dashscope-sdk` 即可启用。 #### DashScopeSdkAudioSpeechModel 基于 DashScope Java SDK 的语音合成模型实现。使用 `spring-ai-alibaba-starter-dashscope-sdk` 并配置 `spring.ai.model.audio.speech=dashscope-sdk` 即可启用。 #### DashScopeSdkAudioTranscriptionModel 基于 DashScope Java SDK 的语音识别模型实现。使用 `spring-ai-alibaba-starter-dashscope-sdk` 并配置 `spring.ai.model.audio.transcription=dashscope-sdk` 即可启用。 #### DashScopeImageModel 基于 DashScope 的图像生成能力,支持文本到图像的生成,具有多种风格和参数。 #### DashScopeEmbeddingModel 文本嵌入模型,用于将文本转换为向量表示,是 RAG(检索增强生成)应用和语义搜索的核心组件。 #### DashScopeAudioSpeechModel 文本转语音合成模型,将文本转换为自然语音,支持多种声音和语言。 #### DashScopeAudioTranscriptionModel 语音转文本转录模型,以高精度将音频转换为文本。 ### MCP (模型上下文协议) MCP 提供了一个标准化协议,用于管理和路由 AI 模型上下文。此扩展包括: - **MCP Common**: 模型上下文协议的核心抽象和工具 - **MCP Registry**: 用于发现和管理 MCP 服务的注册中心 - **MCP Router**: 智能路由功能,用于在多个模型上下文之间分发请求 **可用的 Starter:** - `spring-ai-alibaba-starter-mcp-registry` - `spring-ai-alibaba-starter-mcp-router` ### 工具回调 大量预构建的工具集成,使 AI 模型能够与外部服务和 API 交互。框架包含 40+ 个即用型工具: **搜索和信息:** - 百度搜索、Brave 搜索、DuckDuckGo、Metaso 搜索、Tavily 搜索、SerpAPI - 维基百科、谷歌学术、OpenAlex - 阿里云 AI 搜索 **翻译服务:** - 阿里翻译、百度翻译、谷歌翻译、微软翻译、有道翻译 **地图和位置:** - 高德地图、百度地图、腾讯地图、OpenTripMap、TripAdvisor **新闻和媒体:** - 新浪新闻、今日头条 **协作工具:** - 钉钉、飞书 - GitHub 工具包、GitLab - 语雀、Notion **网页抓取:** - Firecrawl、Jina Crawler **数据和存储:** - Memcached、Minio - MongoDB、MySQL、Elasticsearch、SQLite **学术和研究:** - Arxiv、谷歌学术、OpenAlex、Semantic Scholar **金融和数据:** - Tushare(金融数据) - 世界银行数据 **实用工具:** - 时间、天气、快递100(物流追踪) - JSON 处理器、正则表达式 - 敏感词过滤 **趋势分析:** - 谷歌趋势 **专业工具:** - Ollama 搜索模型 - Bilibili(视频平台) 每个工具都提供自动配置支持,可通过属性配置轻松启用。 ### 向量存储 用于构建 RAG 应用和语义搜索功能的向量数据库集成: - **AnalyticDB Store**: 阿里云 AnalyticDB 向量存储 - **OceanBase Store**: 支持向量的 OceanBase 分布式数据库 - **OpenSearch Store**: 阿里云 OpenSearch 向量搜索 - **TableStore Store**: 阿里云 TableStore 向量数据存储 - **Tair Store**: 阿里云 Tair(Redis 兼容)向量存储 所有向量存储都提供一致的 API: - 嵌入存储和检索 - 相似度搜索 - 元数据过滤 - 批量操作 ### 聊天记忆 多种存储后端,用于管理对话历史和长期记忆: **短期记忆:** - **Redis**: 高性能内存存储 - **Memcached**: 分布式内存缓存 - **JDBC**: 关系型数据库存储 - **MongoDB**: 基于文档的存储 - **Elasticsearch**: 支持全文搜索的记忆 - **TableStore**: 阿里云 TableStore **长期记忆:** - **Mem0**: 具有智能摘要和检索功能的高级长期记忆 可用的 Starter: - `spring-ai-alibaba-starter-memory`(短期记忆) - `spring-ai-alibaba-starter-memory-long`(长期记忆) - 单独的存储后端 Starter(如 `spring-ai-alibaba-starter-memory-redis`) ### 检索增强生成 (RAG) 流行的 RAG 架构和各种可重用组件: - **混合搜索**: 使用 BM25 和 KNN 搜索的混合检索器,采用倒数排名融合 (RRF)。目前支持 Elasticsearch。 - **[HyDE 搜索](https://arxiv.org/abs/2212.10496)**: 假设文档嵌入 RAG,使用假设文档嵌入来提高检索召回率和准确性 可用的 Starter: ```xml com.alibaba.cloud.ai spring-ai-alibaba-starter-rag ``` ### 提示词 动态提示词管理和版本控制功能: - **Nacos 提示词**: 在 Nacos 配置中心存储和管理提示词,支持: - 无需代码更改的动态提示词更新 - 版本控制 - 环境特定的提示词 - 多租户支持 **Starter:** ```xml com.alibaba.cloud.ai spring-ai-alibaba-starter-nacos-prompt ``` ### 文档解析器 支持各种格式的全面文档解析功能: - **Apache PDFBox**: PDF 文档解析 - **BibTeX**: 参考文献文件解析 - **BSHtml**: 具有 BeautifulSoup 类似功能的 HTML 内容解析 - **Directory**: 批量目录解析 - **Markdown**: Markdown 文档解析 - **Multi-modality**: 多模态文档解析(文本、图像等) - **PDF Tables**: 高级 PDF 表格提取 - **Tika**: Apache Tika 集成,支持 1000+ 种文件格式 - **YAML**: YAML 配置文件解析 ### 文档读取器 适用于各种数据源和平台的专业文档读取器: **归档和存储:** - 归档文件(ZIP、TAR 等) - 腾讯云 COS(云对象存储) **学术和研究:** - Arxiv 论文 - HuggingFace 文件系统 **协作平台:** - Notion - 语雀 - 飞书 - Obsidian - OneNote - GitBook **代码仓库:** - GitHub - GitLab - GPT 仓库加载器格式 **媒体:** - Bilibili 文本 - YouTube 文本 **数据库:** - Elasticsearch - MongoDB - MySQL - SQLite **通信:** - 邮件(IMAP、POP3) - Mbox 格式 **AI 数据:** - ChatGPT 对话数据 - POI(兴趣点)数据 每个读取器都可以从其相应的源提取和构建内容,为 RAG 管道和 AI 处理做好准备。 ### 观测和监控 ARMS(应用实时监控服务)集成,提供全面的 AI 应用可观测性: - 请求/响应跟踪 - 性能指标 - 令牌使用跟踪 - 错误监控 - 成本分析 **Starter:** ```xml com.alibaba.cloud.ai spring-ai-alibaba-starter-arms-observation ``` ## 贡献 我们欢迎贡献!请查看我们的贡献指南,并遵循每个模块 README 中概述的开发标准。 ## 许可证 本项目在 Apache License 2.0 下许可 - 详见 LICENSE 文件。 ## 社区与支持 - Spring AI Alibaba Agent 框架: [https://github.com/alibaba/spring-ai-alibaba](https://github.com/alibaba/spring-ai-alibaba) - 文档: [https://java2ai.com](https://java2ai.com) - 示例: [Spring AI Alibaba 示例](https://github.com/springaialibaba/spring-ai-alibaba-examples)