# knowledge-base-api **Repository Path**: yaofengqiao/knowledge-base-api ## Basic Information - **Project Name**: knowledge-base-api - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-04 - **Last Updated**: 2026-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于RAG的知识库系统 ## 项目简介 这是一个基于RAG(Retrieval-Augmented Generation)技术的企业级知识库管理系统。系统采用Spring Boot + Spring AI框架,支持多格式文档管理、智能问答、语义检索等功能。 ## 技术栈 ### 后端 - Spring Boot 3.2.0 - Spring AI 1.0.0-M7 - Spring AI Alibaba 1.0.0-M6.1 - MyBatis-Plus 3.5.5 - Sa-Token 1.37.0 - PostgreSQL 42.6.0 - Hutool 5.8.23 ### 前端 - Thymeleaf 3.1+ - Bootstrap 5.x - jQuery 3.x - Axios ### AI服务 - 通义千问(qwen-max) - text-embedding-v3(向量嵌入) ## 功能特性 ### 核心功能 1. **文档管理** - 支持PDF、Word、Markdown、TXT等多种格式 - 批量上传 - 自动解析和分块 - 文档版本管理 2. **智能问答** - 基于RAG的智能问答 - 多轮对话支持 - 答案来源引用 3. **知识检索** - 语义相似度检索 - 关键词检索 - 混合检索 4. **系统管理** - 用户权限管理 - 知识库管理 - 系统配置 ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - PostgreSQL 12+ - 阿里云DashScope API Key ### 安装步骤 1. **克隆项目** ```bash git clone cd knowledge-base ``` 2. **配置数据库** ```bash # 创建PostgreSQL数据库 psql -U postgres CREATE DATABASE knowledge_base; # 执行初始化脚本 psql -U postgres -d knowledge_base -f src/main/resources/db/schema.sql ``` 3. **配置应用** 编辑 `src/main/resources/application.yml`: ```yaml spring: datasource: url: jdbc:postgresql://localhost:5432/knowledge_base username: postgres password: your_password spring: ai: dashscope: api-key: your-dashscope-api-key ``` 4. **编译运行** ```bash mvn clean package java -jar target/knowledge-base-1.0.0.jar ``` 5. **访问系统** - 访问地址:http://localhost:8080 - 默认管理员账号:admin / admin123 ## 项目结构 ``` knowledge-base/ ├── src/ │ ├── main/ │ │ ├── java/com/knowledgebase/ │ │ │ ├── common/ # 通用类 │ │ │ ├── config/ # 配置类 │ │ │ ├── controller/ # 控制器 │ │ │ ├── core/ # 核心组件 │ │ │ │ ├── parser/ # 文档解析器 │ │ │ │ ├── splitter/ # 文档分块器 │ │ │ │ ├── vector/ # 向量服务 │ │ │ │ ├── optimizer/ # 查询优化器 │ │ │ │ └── rag/ # RAG服务 │ │ │ ├── entity/ # 实体类 │ │ │ ├── mapper/ # Mapper接口 │ │ │ └── service/ # 服务层 │ │ └── resources/ │ │ ├── db/ # 数据库脚本 │ │ ├── static/ # 静态资源 │ │ └── templates/ # 模板文件 │ └── test/ # 测试代码 ├── pom.xml └── README.md ``` ## API接口 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/logout` - 用户登出 - `POST /api/auth/register` - 用户注册 ### 文档管理接口 - `POST /api/documents/upload` - 上传文档 - `GET /api/documents` - 获取文档列表 - `GET /api/documents/{id}` - 获取文档详情 - `DELETE /api/documents/{id}` - 删除文档 - `POST /api/documents/{id}/reprocess` - 重新处理文档 ### 知识检索接口 - `POST /api/chat/query` - 智能问答 - `GET /api/chat/history` - 获取对话历史 ### 系统管理接口 - `GET /api/knowledge-bases` - 获取知识库列表 - `POST /api/knowledge-bases` - 创建知识库 - `DELETE /api/knowledge-bases/{id}` - 删除知识库 ## 配置说明 ### 文档处理配置 ```yaml knowledge-base: document: chunk-size: 800 # 分块大小(Token) chunk-overlap: 50 # 重叠大小 min-chunk-size: 350 # 最小分块大小 ``` ### 检索配置 ```yaml knowledge-base: retrieval: top-k: 5 # 返回Top-K结果 similarity-threshold: 0.6 # 相似度阈值 ``` ## 开发计划 ### 第一阶段(MVP) - [x] 基础框架搭建 - [x] 文档上传和解析 - [x] 向量化和存储 - [x] 基础检索功能 - [x] 简单问答功能 - [x] 基础Web界面 ### 第二阶段(功能完善) - [ ] 查询优化功能 - [ ] 多轮对话支持 - [ ] 文档管理功能完善 - [ ] 用户权限管理 - [ ] 系统配置管理 ### 第三阶段(优化增强) - [ ] 性能优化 - [ ] 高级检索功能 - [ ] 多知识库支持 - [ ] 统计分析功能 - [ ] 移动端适配 ## 注意事项 1. **API密钥配置**:需要在application.yml中配置阿里云DashScope的API Key 2. **数据库扩展**:PostgreSQL需要安装pgvector扩展 3. **文件存储**:默认使用本地存储,生产环境建议使用OSS 4. **密码安全**:当前密码未加密,生产环境需要加密处理 ## 许可证 MIT License ## 联系方式 如有问题,请提交Issue或联系开发团队。