Yu-AI-Agent 项目(AI 恋爱大师智能体) · 学习笔记
Yu-AI-Agent 项目(AI 恋爱大师智能体) · 学习笔记
本项目是AI 超级智能体项目的 Java 前后端部分,学习自 鱼皮 · 编程导航 的 AI 开发实战课程及开源代码仓库。
基于Spring Boot 3 + Java 21 + Spring AI构建了 AI 恋爱大师应用与 ReAct 模式自主规划智能体 YuManus。
📸 项目预览
首页 · AI 智能体选择
AI 恋爱大师
AI 超级智能体
📂 项目结构
yu-ai-agent/ # 项目根目录 ├── yu-ai-agent-frontend/ # Vue3 前端模块 │ ├── src/ # 前端源码目录 │ ├── package.json # 前端依赖配置 │ ├── vite.config.js # Vite 构建配置 │ └── nginx.conf # Nginx 部署配置 └── yu-ai-agent-backend/ # Java 后端项目模块 ├── pom.xml # 父 POM,管理多模块 ├── Dockerfile # Docker 构建文件 ├── data/ # README 示例截图 ├── yu-ai-agent-admin/ # 核心应用模块 │ └── src/main/ │ ├── java/com/yuaiagent/ │ │ ├── advisor/ # 自定义 Advisor(日志、Re-Reading) │ │ ├── agent/ # AI 智能体(BaseAgent → ReActAgent → YuManus) │ │ ├── chatmemory/ # 文件持久化对话记忆(Kryo 序列化) │ │ ├── config/ # 全局配置(CORS、Tool 注册、RAG) │ │ ├── constant/ # 常量定义 │ │ ├── controller/ # REST API 控制器(AI 对话、健康检查) │ │ ├── rag/ # RAG 全链路(文档加载/切割/检索/查询增强) │ │ ├── service/ # 业务服务(恋爱大师、超级智能体) │ │ └── tools/ # 7 种内置工具 │ └── resources/ │ ├── application.yml # 应用配置 │ ├── application-druid.yml # Druid 数据源配置 │ ├── document/ # RAG 知识库文档(恋爱问答 - 单身/恋爱/已婚篇) │ └── mcp-servers.json # MCP 服务端连接配置 └── yu-image-search-mcp-server/ # MCP 图片搜索服务模块 └── src/main/ ├── java/.../tools/ImageSearchTool.java └── resources/ # SSE / STDIO 双模式配置✨ 核心功能
1. AI 恋爱大师 (LoveAppService)
- 多轮对话:基于 Spring AI
ChatClient+ 自定义Advisor实现连贯会话。 - 对话记忆持久化:使用
FileBasedChatMemory+ Kryo 序列化,将会话状态落盘。 - RAG 知识库:加载恋爱领域 Markdown 文档(单身篇/恋爱篇/已婚篇),经文档切割 → PGVector 向量存储 → 查询增强,实现精准知识问答。
- 结构化输出:支持生成恋爱报告等结构化 JSON 输出。
- 工具调用 & MCP:可调用内置工具和外部 MCP 服务辅助回答。
2. AI 超级智能体 YuManus (SuperAgentService)
- ReAct 架构:
BaseAgent → ToolCallAgent → ReActAgent → YuManus四层继承体系,实现"思考 → 行动 → 观察"闭环。 - 自主规划:根据用户需求自主推理并调用多种工具,直至完成目标。
- SSE 流式输出:通过 SSE 实时推送智能体推理过程和结果。
3. 内置工具集
| 工具 | 说明 |
|---|---|
WebSearchTool | 联网搜索(SearchAPI) |
WebScrapingTool | 网页抓取(Jsoup) |
FileOperationTool | 文件读写操作 |
ResourceDownloadTool | 资源下载 |
TerminalOperationTool | 终端命令执行 |
PDFGenerationTool | PDF 文档生成(iText) |
TerminateTool | 终止智能体执行 |
4. MCP 图片搜索服务 (yu-image-search-mcp-server)
- 独立模块,支持SSE和STDIO两种通信模式。
- 提供从特定网站搜索图片的能力,可被主应用或其他 MCP 客户端调用。
🛠️ 技术栈
| 分类 | 技术 |
|---|---|
| 框架 | Spring Boot 3.5 + Java 21 |
| AI 框架 | Spring AI 1.0 + Spring AI Alibaba + LangChain4j |
| 大模型 | 阿里云百炼 DashScope(qwen-plus)/ Ollama 本地模型 |
| 向量数据库 | PGVector(PostgreSQL 扩展) |
| 数据源 | Druid 连接池 |
| API 文档 | Knife4j (Swagger) |
| 工具库 | Hutool、Jsoup、iText、Kryo |
| 协议 | MCP(Model Context Protocol) |
| 部署 | Docker / Serverless |
🚀 快速开始
1. 环境要求
- JDK 21+
- Maven 3.9+
- PostgreSQL + PGVector 扩展(如使用 RAG/向量存储特性)
2. 配置 API Key
编辑yu-ai-agent-admin/src/main/resources/application.yml,替换以下配置:
spring:ai:dashscope:api-key:替换为您的API_KEY# 阿里云百炼 DashScopesearch-api:api-key:替换为您的API_KEY# SearchAPI 联网搜索3. 构建 & 运行
# 编译打包mvn clean package-DskipTests# 启动主应用java-jaryu-ai-agent-admin/target/yu-ai-agent-admin-0.0.1-SNAPSHOT.jar# (可选) 启动 MCP 图片搜索服务java-jaryu-image-search-mcp-server/target/yu-image-search-mcp-server-0.0.1-SNAPSHOT.jar4. Docker 部署
dockerbuild-tyu-ai-agent.dockerrun-p8123:8123 yu-ai-agent5. 接口文档
启动后访问 Knife4j 接口文档:
http://localhost:8123/api/doc.html📚 学习大纲
本项目覆盖以下核心知识点(对应原课程 9 期内容):
- AI 大模型接入— API / SDK / Spring AI / Ollama 本地部署
- Prompt 工程— 提示词优化技巧与模板
- Spring AI 核心特性— ChatClient、Advisor、ChatMemory、结构化输出
- RAG 知识库— 文档 ETL → 向量存储 → 检索增强 → 全链路调优
- 向量数据库— PGVector 集成与配置
- Tool Calling— 工具定义、注册与自动调用
- MCP 协议— 服务开发、SSE/STDIO 通信、安全实践
- AI Agent— ReAct 模式、自主规划智能体开发
- AI 服务化— SSE 接口、Serverless 部署
📜 声明
- 学习用途:本仓库仅用于个人学习与笔记整理,无任何商业用途。
- 非官方代码:本项目与鱼皮 / 编程导航官方无直接关联,仅参考其公开课程内容进行实践。
- 欢迎扩展:你可以在此基础上继续扩展自己的 AI Agent 实战项目与实验。
- 仓库代码
先赞后看,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦!
