# agent-learning **Repository Path**: gooree/agent-learning ## Basic Information - **Project Name**: agent-learning - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-28 - **Last Updated**: 2026-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能Agent系统 基于Spring AI + Vue 3的智能客服系统,支持RAG知识库、多轮对话、Function Calling。 ## 技术栈 | 模块 | 技术 | |------|------| | 后端 | Spring Boot 3.5 + Spring AI 1.1 + Java 21 | | 前端 | Vue 3 + Vite + Element Plus + Pinia | | 向量数据库 | 内存向量存储 (支持Milvus扩展) | | Embedding | BGE-M3 (1024维) | | 会话存储 | Redis | | 文档解析 | Apache Tika | ## 快速开始 ### 1. 环境准备 ```bash # 设置API密钥 export OPENAI_API_KEY="your-api-key" ``` ### 2. 启动后端 ```bash cd backend mvn spring-boot:run ``` ### 3. 启动前端 ```bash cd frontend npm run dev ``` ### 4. 启动Embedding服务 (可选) ```bash pip install sentence-transformers flask python backend/embedding_server.py --port 8000 ``` ## 项目结构 ``` agent-learning/ ├── backend/ # Spring Boot后端 │ ├── src/main/java/com/agent/ │ │ ├── controller/ # API控制器 │ │ ├── service/ # 业务逻辑 │ │ │ ├── rag/ # RAG相关服务 │ │ │ │ ├── strategy/ # 切分策略 │ │ │ │ ├── embedding/ # 向量化服务 │ │ │ │ └── vector/ # 向量存储 │ │ │ ├── agent/ # Agent处理 │ │ │ └── memory/ # 记忆管理 │ │ ├── config/ # 配置类 │ │ └── entity/ # 实体类 │ ├── pom.xml │ └── embedding_server.py # BGE-M3服务 └── frontend/ # Vue 3前端 ├── src/ │ ├── api/ # API调用 │ ├── views/ # 页面组件 │ ├── stores/ # Pinia状态 │ └── router/ # 路由配置 └── package.json ``` ## 功能特性 ### 知识库管理 - 支持多种文档格式: TXT, PDF, DOC, DOCX, XLS, PPT, EPUB - 四种切分策略: 固定大小、递归字符、语义、文档结构 - 混合检索: 向量相似度 + 关键词匹配 - 参数可配置: 切分大小、重叠大小 ### AI对话 - 多轮对话记忆 (Redis存储) - 意图识别与路由 - Function Calling (订单、物流、商品查询) - 支持流式响应 ### 前端页面 - 知识库管理: 文档上传、列表、删除 - AI对话: 实时聊天界面 ## 配置说明 ### 后端配置 (application.yml) ```yaml spring: ai: openai: api-key: ${OPENAI_API_KEY} base-url: "https://openrouter.ai/api" chat: options: model: "minimax/minimax-m2.5:free" data: redis: host: ${REDIS_HOST:localhost} port: ${REDIS_PORT:6379} app: milvus: host: ${MILVUS_HOST:localhost} port: ${MILVUS_PORT:19530} embedding: server: url: ${EMBEDDING_SERVER_URL:http://localhost:8000} ``` ## API接口 | 方法 | 路径 | 描述 | |------|------|------| | GET | /agent/chat/ai | AI对话 | | POST | /agent/knowledge/upload | 上传文档 | | GET | /agent/knowledge/list | 文档列表 | | DELETE | /agent/knowledge/{id} | 删除文档 | | GET | /agent/knowledge/search | 搜索 | ## 注意事项 1. `application.yml` 使用非标准占位符格式 `{$env.OPENAI_API_KEY}` 2. OPENAI_BASE_URL 结尾不含 `/v1` (Spring AI会自动添加) 3. Redis 7.x以上需要同时设置 username 和 password