# knowledge **Repository Path**: MingByte_729316231/knowledge ## Basic Information - **Project Name**: knowledge - **Description**: 企业知识库2.0版,更新与2025年12月16日 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-16 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 企业知识库系统 ## 项目介绍 企业知识库系统是一个基于Spring Boot 3.2.5的智能文档管理和问答系统,支持文档上传、自动分块、向量嵌入、语义搜索和智能问答等功能。系统采用现代化的技术栈,提供高效、准确的知识管理和检索能力。 ### 核心功能 - **文档管理**:支持多种格式文档上传、预览和管理 - **智能分块**:自动将文档分割为语义连贯的文本块 - **向量嵌入**:使用DashScope API生成文本向量 - **语义搜索**:基于Milvus向量数据库的相似性搜索 - **智能问答**:结合DeepSeek大模型的上下文感知问答 - **多轮对话**:支持连续对话和历史上下文管理 - **意图分析**:智能识别用户问题意图,优化回答策略 - **日志管理**:基于Filebeat、Elasticsearch、Kibana的日志收集和分析 ## 技术栈 ### 后端技术 - Spring Boot 3.2.5 - Java 17 - PostgreSQL 14.8 - Milvus 2.3.9(向量数据库) - Hibernate JPA - HikariCP(连接池) ### 前端技术 - Vue 3 - Element Plus - Axios ### AI 技术 - DashScope Embedding API(文本向量化) - DeepSeek LLM(大语言模型) ### 日志系统 - Filebeat 8.11.0 - Elasticsearch 8.11.0 - Kibana 8.11.0 ### 容器化 - Docker - Docker Compose ## 系统架构 ```mermaid flowchart TD A[用户] -->|上传文档| B[FileUploadController] A -->|提问| C[QAController] B -->|处理文档| D[FileHandler] B -->|生成向量| E[DashScopeEmbeddingService] E -->|存储向量| F[MilvusService] C -->|分析意图| G[IntentAnalysisService] C -->|生成向量| E C -->|搜索向量| F C -->|生成回答| H[DeepSeekService] F -->|返回相关文档| C H -->|返回回答| C C -->|返回结果| A I[Filebeat] -->|收集日志| J[Elasticsearch] J -->|存储日志| K[Kibana] A -->|查看日志| K ``` ## 环境要求 - JDK 17+ - Maven 3.8+ - Docker 20.10+ - Docker Compose 1.29+ - 网络连接(访问DashScope API) ## 快速开始 ### 1. 环境准备 #### 1.1 启动依赖服务 使用Docker Compose启动Milvus、PostgreSQL等依赖服务: ```bash # 启动核心服务(Milvus、PostgreSQL) docker-compose up -d # 启动日志服务(可选) cd filebeat docker-compose up -d ``` #### 1.2 配置环境变量 复制并修改配置文件: ```bash cp src/main/resources/application.yml.example src/main/resources/application.yml ``` 编辑`application.yml`文件,配置以下内容: - 数据库连接信息 - DashScope API Key - DeepSeek API Key - 文件上传目录 ### 2. 构建和运行 #### 2.1 构建项目 ```bash mvn clean package -DskipTests ``` #### 2.2 运行项目 ```bash # 方法1:使用Maven运行 mvn spring-boot:run # 方法2:使用jar文件运行 java -jar target/knowledge-base-1.0.0.jar ``` ### 3. 前端部署 ```bash cd frontend npm install npm run build ``` 将构建产物部署到Web服务器或使用内置的静态资源服务。 ## API 文档 ### 主要接口 #### 文档管理 - `POST /api/file/upload` - 上传文档 - `GET /api/qa/preview/{fileName}` - 预览文档 #### 问答接口 - `POST /api/qa/ask/stream/with-history` - 多轮对话流式接口 #### 会话管理 - `GET /api/qa/conversations` - 获取会话列表 - `GET /api/qa/conversations/{conversationId}/messages` - 获取会话消息 - `GET /api/qa/conversations/{conversationId}/qa-details` - 获取问答详情 - `DELETE /api/qa/conversations/{conversationId}` - 删除会话 ## 配置说明 ### 核心配置文件 1. **application.yml** - 主配置文件 - 数据库连接配置 - API Key配置 - 文件存储配置 2. **filebeat/filebeat.yml** - 日志收集配置 - 日志路径配置 - Elasticsearch连接配置 ### 环境变量 | 变量名 | 描述 | 默认值 | |-------|------|-------| | `DB_HOST` | 数据库主机 | localhost | | `DB_PORT` | 数据库端口 | 5432 | | `DB_NAME` | 数据库名称 | knowledge_base | | `DB_USER` | 数据库用户 | admin | | `DB_PASSWORD` | 数据库密码 | password | | `DASH_SCOPE_API_KEY` | DashScope API Key | - | | `DEEPSEEK_API_KEY` | DeepSeek API Key | - | | `FILE_UPLOAD_DIR` | 文件上传目录 | ./uploads | ## 部署建议 ### 生产环境部署 1. **使用Docker Compose**: ```bash docker-compose -f docker-compose.prod.yml up -d ``` 2. **配置HTTPS**:在生产环境中配置SSL证书 3. **配置监控**:使用ELK stack监控系统运行状态 4. **备份策略**:定期备份数据库和文件存储 ### 性能优化 1. **Milvus配置**:根据数据量调整Milvus的内存和CPU分配 2. **连接池配置**:优化HikariCP连接池参数 3. **缓存策略**:对频繁访问的向量和文档进行缓存 4. **批量处理**:使用批量API减少网络请求 ## 常见问题 ### 1. 文档上传失败 - 检查文件大小是否超过限制 - 检查文件格式是否支持 - 检查文件上传目录权限 ### 2. 问答响应缓慢 - 检查网络连接是否正常 - 检查Milvus服务是否运行正常 - 检查DashScope API调用是否成功 ### 3. 日志收集异常 - 检查Filebeat配置是否正确 - 检查Elasticsearch连接是否正常 - 检查日志文件权限 ### 4. 向量搜索结果不准确 - 检查文档分块策略是否合理 - 调整Milvus搜索参数 - 优化向量嵌入模型 ## 开发指南 ### 代码规范 - 遵循Spring Boot代码规范 - 使用中文注释 - 方法和变量命名清晰明了 - 避免过长的方法(建议不超过100行) ### 开发流程 1. **克隆代码**: ```bash git clone ``` 2. **创建分支**: ```bash git checkout -b feature/your-feature ``` 3. **开发功能**:实现新功能或修复bug 4. **运行测试**: ```bash mvn test ``` 5. **提交代码**: ```bash git add . git commit -m "feat: add new feature" git push origin feature/your-feature ``` ## 安全注意事项 1. **API Key管理**:不要将API Key硬编码在代码中,使用环境变量或配置文件管理 2. **文件上传安全**:对上传文件进行类型检查和病毒扫描 3. **SQL注入防护**:使用参数化查询和ORM框架 4. **跨站脚本防护**:对用户输入进行验证和转义 5. **权限控制**:实现细粒度的权限管理 ## 许可证 本项目采用MIT许可证。详情请参阅LICENSE文件。 ## 联系方式 - 项目维护者:[您的姓名] - 联系邮箱:[您的邮箱] - 项目地址:[项目仓库地址] --- **版本信息**:v1.0.0 **最后更新**:2026-02-05