当前位置: 首页 > news >正文

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 AIChatClient+ 自定义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终端命令执行
PDFGenerationToolPDF 文档生成(iText)
TerminateTool终止智能体执行

4. MCP 图片搜索服务 (yu-image-search-mcp-server)

  • 独立模块,支持SSESTDIO两种通信模式。
  • 提供从特定网站搜索图片的能力,可被主应用或其他 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.jar

4. Docker 部署

dockerbuild-tyu-ai-agent.dockerrun-p8123:8123 yu-ai-agent

5. 接口文档

启动后访问 Knife4j 接口文档:

http://localhost:8123/api/doc.html

📚 学习大纲

本项目覆盖以下核心知识点(对应原课程 9 期内容):

  1. AI 大模型接入— API / SDK / Spring AI / Ollama 本地部署
  2. Prompt 工程— 提示词优化技巧与模板
  3. Spring AI 核心特性— ChatClient、Advisor、ChatMemory、结构化输出
  4. RAG 知识库— 文档 ETL → 向量存储 → 检索增强 → 全链路调优
  5. 向量数据库— PGVector 集成与配置
  6. Tool Calling— 工具定义、注册与自动调用
  7. MCP 协议— 服务开发、SSE/STDIO 通信、安全实践
  8. AI Agent— ReAct 模式、自主规划智能体开发
  9. AI 服务化— SSE 接口、Serverless 部署

📜 声明

  • 学习用途:本仓库仅用于个人学习与笔记整理,无任何商业用途。
  • 非官方代码:本项目与鱼皮 / 编程导航官方无直接关联,仅参考其公开课程内容进行实践。
  • 欢迎扩展:你可以在此基础上继续扩展自己的 AI Agent 实战项目与实验。
  • 仓库代码

先赞后看,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦!

http://www.cnnetsun.cn/news/1790417.html

相关文章:

  • 后端大神转型AI:两年Agent/RAG经验,斩获字节超30%涨幅Offer!
  • 基于springboot钱币收藏交流系统的设计与实现_31iopgl9_zl015
  • 别再只用指纹锁了!用STM32F103C8T6+ESP8266,我DIY了一个支持远程开门的智能门禁(附完整代码)
  • JPEXS Free Flash Decompiler:Flash逆向工程的终极武器,深度解析SWF反编译实战
  • 【GUI-Agent】阶跃星辰 GUI-MCP 解读---()---GUI-MCP 整体架构霉
  • 西门子SMART200 PLC烘箱流水线四路加热PID温度控制程序,包含PLC编程、变频器通讯...
  • 脚本管理工具怎么选?从3个维度重新认识ScriptCat与油猴
  • 2026年OpenClaw怎么部署?阿里云5分钟搭建+大模型APIKey配置、Skill集成保姆级教程
  • 低代码开发,降低成本的同时提升质量
  • 老古董AD1674模数转换器,在51单片机温度测量项目里还能这么用?
  • EvolveRouter: Co-Evolving Routing and Prompt(论文解读)
  • G-Helper:华硕笔记本性能控制工具深度评测与使用指南
  • 安卓启动页兼容性进阶指南:从基础适配到Android 12+ SplashScreen API深度优化
  • 图像去雾新手必看:5个高质量数据集下载与使用避坑指南(附百度云链接)
  • 使用 Python 操作 Excel 文件中的工作表(添加和删除)
  • 如何准确获取 HTTP 响应的完整 MIME 类型(含媒体子类型)
  • MTK Camera调试实战:搞定I2C报错、图像反向、颜色异常等常见问题
  • 2026年,成都那些让人眼前一亮、超合意的配眼镜店究竟在哪?
  • IDM永久使用开源解决方案:安全验证与实战指南
  • 开源机器人手终极指南:如何用OpenHand技术解决柔性抓取的三大挑战
  • 记录复现多模态大模型论文OPERA的一周工作()佬
  • Claude终端命令大全
  • AI净界RMBG-1.4应用场景全解析:从表情包制作到设计素材生成
  • 如何配置表结构支持读写分离标记_在COMMENT中添加路由规则的架构级应用
  • 毕业设计实战:基于SSM+Vue的家乡特产网上商城设计与实现指南
  • SQL中如何处理多重嵌套的字符串:函数嵌套调用技巧
  • 2026精油灌装机高性价比品牌评选TOP6
  • C#与Halcon联合开发的通用视觉框架:易学易用,助力视觉应用快速开发
  • 【EF Core 10向量搜索架构设计终极指南】:20年微软数据平台架构师亲授生产级向量检索系统落地的5大避坑原则
  • 城通网盘下载速度慢?ctfileGet高效解决方案让下载效率提升87%