# 当前系统配置说明 ## 🎉 好消息! 你的系统已经配置好了,**不需要额外安装ChromaDB**! ## 当前配置 ### ✅ 已启用的功能 1. **文档管理** - 文档上传(txt、pdf、doc、docx、md) - 文档解析和文本提取 - 文档列表查看 - 文档删除 2. **向量存储** - 使用 **SimpleVectorStore**(内存向量存储) - 无需安装ChromaDB - 数据存储在内存中,重启后会丢失 3. **AI服务状态** - AI服务:已连接 ✓ - 向量存储:正常 ✓ ## 系统架构 ``` ┌─────────────────┐ │ 知识库管理界面 │ └────────┬────────┘ │ ▼ ┌─────────────────┐ │ 后端API服务 │ └────────┬────────┘ │ ┌────┴────┐ │ │ ▼ ▼ ┌────────┐ ┌──────────────┐ │ Ollama │ │SimpleVector │ │ (可选) │ │Store (内存) │ └────────┘ └──────────────┘ ``` ## SimpleVectorStore vs ChromaDB ### SimpleVectorStore(当前使用) **优点:** - ✅ 无需安装额外服务 - ✅ 配置简单,开箱即用 - ✅ 适合开发和测试 - ✅ 性能快(内存操作) **缺点:** - ❌ 数据存储在内存中 - ❌ 重启后数据丢失 - ❌ 不适合大规模数据 - ❌ 无法持久化 ### ChromaDB(可选升级) **优点:** - ✅ 数据持久化存储 - ✅ 支持大规模数据 - ✅ 专业的向量数据库 - ✅ 高级查询功能 **缺点:** - ❌ 需要额外安装 - ❌ 需要独立运行服务 - ❌ 配置相对复杂 ## 当前向量化状态 根据代码,向量化功能**已被临时禁用**,原因是: 1. 避免在AI服务未启动时超时 2. 确保文档上传功能正常工作 ### 如果需要启用向量化 #### 方案1:使用Ollama(本地免费) 1. 安装Ollama: https://ollama.ai/download 2. 下载模型: ```bash ollama pull nomic-embed-text ollama pull deepseek-r1:32b ``` 3. 修改代码启用向量化(见下文) #### 方案2:使用OpenAI API(付费) 1. 获取API Key 2. 配置application.yml 3. 修改代码启用向量化 ### 启用向量化的代码修改 打开文件:`ry-xinli-system/src/main/java/com/ddnai/system/rag/service/KnowledgeService.java` 找到第98-115行,将注释的代码取消注释: **修改前:** ```java // 5. 向量化 - 添加超时和异常处理 // 暂时跳过向量化,避免超时问题 List embeddings = null; boolean vectorizationSuccess = false; // TODO: 启用向量化需要先启动AI服务(Ollama或OpenAI) log.info("Vectorization is currently disabled to avoid timeout issues"); log.info("Document will be saved without vector embeddings"); /* 取消注释以启用向量化 try { embeddings = embeddingService.