# Superintelligent agent **Repository Path**: sleeping071/spring-ai-project ## Basic Information - **Project Name**: Superintelligent agent - **Description**: 这是一个超级智能体项目 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-09 - **Last Updated**: 2026-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring AI 项目 基于 Spring AI 框架的智能应用演示项目,集成了阿里云 DashScope 大语言模型,支持检索增强生成(RAG)、工具调用、聊天记忆等高级功能。 ## 项目简介 本项目是一个 Spring AI 演示应用,展示了如何使用 Spring AI 框架构建智能聊天应用。集成了阿里云 DashScope 的 Qwen 大语言模型,支持多种高级特性: - 💬 **基础聊天** - 与 AI 大模型进行对话 - 🧠 **聊天记忆** - 基于文件的对话历史持久化 - 📚 **RAG 检索增强** - 结合向量数据库进行知识增强回答 - 🔧 **工具调用** - AI 自动调用外部工具(文件操作、PDF生成、网页抓取等) - 📝 **日志顾问** - 请求/响应的日志记录 - 🔁 **重读顾问** - 优化提示词提升回答质量 ## 技术栈 - **Spring Boot 3.x** - 应用框架 - **Spring AI** - AI 集成框架 - **阿里云 DashScope** - Qwen 大语言模型 - **向量数据库** - PostgreSQL + pgvector / Elasticsearch - **Kryo** - 序列化(用于聊天记忆) ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.8+ - 阿里云 DashScope API Key ### 配置 在 `src/main/resources/application.yml` 中配置 API Key: ```yaml spring: ai: dashscope: api-key: ${DASHSCOPE_API_KEY:your-api-key} ``` ### 构建运行 ```bash ./mvnw spring-boot:run ``` 或构建 JAR 后运行: ```bash ./mvnw clean package java -jar target/spring-ai-project-*.jar ``` ## 核心功能 ### 1. LoveApp 聊天应用 `LoveApp` 是核心演示类,提供多种聊天方式: | 方法 | 功能描述 | |------|----------| | `doChat()` | 基础聊天对话 | | `doChatWithReport()` | 带结构化报告的聊天 | | `doChatWithRag()` | 基于 Elasticsearch 向量库的 RAG 聊天 | | `doChatWithRagPGVector()` | 基于 pgvector 的 RAG 聊天 | | `doChatWithTool()` | 支持工具调用的聊天 | ### 2. 聊天记忆 `FileBasedChatMemory` 实现基于文件的对话记忆: - 自动持久化对话历史 - Kryo 序列化存储 - 按会话 ID 隔离管理 ### 3. RAG 组件 项目提供完整的 RAG 流程支持: - **文档加载** - `LoveAppDocumentLoader` - **文本分词** - `MyTokenTextSplitter` - **关键词增强** - `MyKeywordEnricher` - **摘要增强** - `MySummaryEnricher` - **查询重写** - `QueryRewriter` / `QueryTransform` - **多查询扩展** - `MultiQueryExpanderDemo` ### 4. 自定义工具 项目内置多种 AI 工具: | 工具 | 功能 | |------|------| | `FileOperationTool` | 文件读写操作 | | `PDFGenerationTool` | PDF 文件生成 | | `WebScrapingTool` | 网页内容抓取 | | `WebSearchTool` | 百度搜索引擎搜索 | | `ResourceDownloadTool` | 资源下载 | | `TerminalOperationTool` | 终端命令执行 | ### 5. 顾问(Advisor) 自定义顾问组件: - `MySimpleLoggerAdvisor` - 简单日志记录 - `SimpleLoggerAdvisor` - 标准日志顾问 - `ReReadingAdvisor` - 重读优化顾问,提升回答质量 ## 项目结构 ``` src/main/java/org/example/springaiproject/ ├── SpringAiProjectApplication.java # Spring Boot 启动类 ├── advisor/ # 顾问组件 │ ├── MySimpleLoggerAdvisor.java │ ├── ReReadingAdvisor.java │ └── SimpleLoggerAdvisor.java ├── app/ # 核心应用 │ └── LoveApp.java ├── chatMemory/ # 聊天记忆 │ └── FileBasedChatMemory.java ├── constant/ # 常量定义 │ ├── FileConstant.java │ └── TestApiKey.java ├── controller/ # 控制器 │ └── HealthController.java ├── demo/invoke/ # AI 调用示例 │ ├── HttpAiInvoke.java │ ├── Langchain4jAiInvoke.java │ ├── SdkAiInvoke.java │ └── SpringAiInvoke.java ├── demo/rag/ # RAG 示例 │ └── MultiQueryExpanderDemo.java ├── rag/ # RAG 组件 │ ├── EnricherConfig.java │ ├── LoveAppContextualQueryAugmenterFactory.java │ ├── LoveAppDocumentLoader.java │ ├── LoveAppRagCustomAdvisorFactory.java │ ├── LoveAppVectorStoreConfig.java │ ├── MyKeywordEnricher.java │ ├── MySummaryEnricher.java │ ├── MyTokenTextSplitter.java │ ├── PgVectorVectorStoreConfig.java │ ├── QueryRewriter.java │ └── QueryTransform.java └── tools/ # 工具组件 ├── FileOperationTool.java ├── PDFGenerationTool.java ├── ResourceDownloadTool.java ├── TerminalOperationTool.java ├── ToolRegistration.java ├── WebScrapingTool.java └── WebSearchTool.java ``` ## 测试 项目包含完整的单元测试: ```bash ./mvnw test ``` 测试类: - `LoveAppTest` - LoveApp 核心功能测试 - `MultiQueryExpanderDemoTest` - 多查询扩展测试 ## 使用示例 ### 基础聊天 ```java @Autowired private LoveApp loveApp; String response = loveApp.doChat("你好", "user123"); ``` ### RAG 聊天 ```java String response = loveApp.doChatWithRag("关于项目的问题", "user123"); ``` ### 工具调用 ```java String response = loveApp.doChatWithTool("请搜索今天天气", "user123"); ``` ## 许可证 本项目仅供学习交流使用。 ## 贡献者 - [sleeping071](https://gitee.com/sleeping071) ## 参考资料 - [Spring AI 官方文档](https://docs.spring.io/spring-ai/reference/) - [阿里云 DashScope](https://dashscope.aliyuncs.com/) - [Spring AI Alibaba](https://github.com/spring-projects/spring-ai/tree/main/models/spring-ai-alibaba)