# rag-agent-system **Repository Path**: ywoaimd/rag-agent-system ## Basic Information - **Project Name**: rag-agent-system - **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-05-12 - **Last Updated**: 2026-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAG Agent System Vue 3 + Spring Boot 3 + MySQL 8 + LangChain 的通用知识库与 Agent 系统。 当前系统定位很明确: - 用户注册、登录,维护自己的资料。 - 用户创建和管理自己的知识库。 - 用户上传文档,系统完成解析、切块、向量化。 - 用户基于当前知识库进行 RAG 问答或 Agent 问答。 - 系统保存历史会话,并在回答中展示引用来源。 不包含工单、售后流转或行业专属流程。Agent 是通用知识助手,不带设备、运维、制造等行业假设。 ## 目录 - `frontend/`: Vue + Vite + Element Plus 前端 - `backend/`: Spring Boot + MyBatis Plus + Sa-Token 后端 - `ai-service/`: FastAPI + LangChain + Chroma AI 服务 - `database/`: MySQL 初始化和修复脚本 - `deploy/`: Docker Compose 配置 - `docs/`: 使用文档和需求文档 详细说明见 [docs/usage.md](docs/usage.md)。 ## 已实现能力 - 登录、注册、退出登录、个人资料、修改密码 - 知识库列表、创建知识库、文档上传、文档删除 - 文档去重:同一知识库内按 `kb_id + md5` 防重 - Chroma 一库一 collection 的向量存储 - RAG 问答 - Agent 问答 - 历史会话列表 - 历史消息回放 - 回答引用展示 - SSE 流式输出 ## 系统结构 ```text frontend -> backend -> ai-service -> Ollama / Chroma | | | -> MySQL | -> 浏览器 localStorage 保存 Sa-Token ``` ## 快速启动 ### 1. 启动 MySQL ```powershell cd D:\CodeProject\rag-agent-system docker compose -f deploy/docker-compose.yml up mysql ``` Navicat 连接参数: ```text host: localhost port: 3306 database: rag_agent username: rag_user password: rag_password ``` ### 2. 拉取模型 ```powershell ollama pull qwen2.5:7b ollama pull nomic-embed-text ``` ### 3. 启动 AI 服务 ```powershell cd D:\CodeProject\rag-agent-system\ai-service uv venv .venv --python 3.11 uv pip install --python .\.venv\Scripts\python.exe -r requirements.txt .\.venv\Scripts\python.exe -m uvicorn app.main:app --reload --port 8000 ``` ### 4. 启动后端 ```powershell cd D:\CodeProject\rag-agent-system\backend mvn spring-boot:run ``` ### 5. 启动前端 ```powershell cd D:\CodeProject\rag-agent-system\frontend npm.cmd install npm.cmd run dev ``` 访问: ```text http://localhost:5173 ``` 默认管理员: ```text username: admin password: admin123 ``` ## 关键配置 后端 `application.yml`: ```yaml spring: datasource: url: ${MYSQL_URL:jdbc:mysql://localhost:3306/rag_agent?...} username: ${MYSQL_USER:rag_user} password: ${MYSQL_PASSWORD:rag_password} app: ai-base-url: ${AI_BASE_URL:http://localhost:8000} internal-token: ${INTERNAL_TOKEN:dev-internal-token} sa-token: token-name: satoken timeout: 86400 ``` `${变量名:默认值}` 表示优先读取环境变量;没有环境变量时使用默认值。 ## 主要接口 前端调用后端: - `POST /api/auth/register` - `POST /api/auth/login` - `POST /api/auth/logout` - `GET /api/auth/me` - `PUT /api/auth/profile` - `POST /api/auth/password` - `GET /api/knowledge-bases` - `POST /api/knowledge-bases` - `GET /api/knowledge-bases/{kbId}/documents` - `POST /api/knowledge-bases/{kbId}/documents` - `DELETE /api/knowledge-bases/{kbId}/documents/{documentId}` - `GET /api/chat/sessions?mode=RAG|AGENT` - `GET /api/chat/sessions/{sessionId}/messages` - `POST /api/chat/rag` - `POST /api/chat/rag/stream` - `POST /api/chat/agent` - `POST /api/chat/agent/stream` 后端调用 AI 服务: - `POST /ai/documents/ingest` - `DELETE /ai/documents/{documentId}/vectors?kb_id={kbId}` - `POST /ai/rag/query` - `POST /ai/agent/chat` AI 服务调用后端内部接口: - `GET /internal/users/{id}` - `POST /internal/audit/tool-call` ## 当前 Agent 设计 当前 Agent 只做通用知识助手能力: - `knowledge_search`: 检索当前知识库内容 - `get_current_user`: 获取当前登录用户信息 Agent 不再包含工单、派单、审批、售后流转等动作型业务工具。 ## 后续建议 - 密码哈希当前使用 SHA-256 示例实现,生产环境建议切换到 BCrypt 或 Argon2 - 增加知识库成员管理页面,支持给其他用户授权 `READ` / `WRITE` - 增加文档异步解析队列,避免大文件上传时阻塞请求 - 增加单元测试、接口测试和端到端测试 - 增加生产环境部署配置,例如 Nginx、HTTPS、日志归档和备份策略