# 本地向量数据库配置指南 ## 当前配置 项目使用 **ChromaDB** 作为本地向量数据库,数据存储在 `./data/chroma/` 目录下。 ## 配置说明 ### 1. 环境变量配置 (.env) 在 `.env` 文件中配置以下参数: ```env # 向量数据库类型(虽然代码中已使用 Chroma,但建议设置为 chroma) VECTOR_DB_TYPE=chroma # 向量数据库存储路径(本地文件系统) # 相对路径会基于项目根目录 VECTOR_DB_PERSIST_DIRECTORY=./data/chroma # 集合名称(默认) VECTOR_DB_COLLECTION_NAME=documents ``` ### 2. 目录结构 向量数据库按知识库 ID 组织,每个知识库有独立的目录: ``` data/chroma/ ├── kb_1/ # 知识库 1 的向量数据 ├── kb_2/ # 知识库 2 的向量数据 ├── kb_13/ # 知识库 13 的向量数据 └── ... ``` ### 3. 使用方式 向量数据库会在以下场景自动创建: 1. **上传文档时**:如果上传时选择立即处理,会自动创建向量数据库 2. **处理文档时**:调用 `POST /api/knowledge-bases/{kb_id}/documents/{doc_id}/process` 接口 ### 4. 验证安装 运行以下命令验证向量数据库是否正常工作: ```bash python3 -c " import chromadb from pathlib import Path # 测试创建本地 Chroma 数据库 test_path = './data/chroma/test_kb' client = chromadb.PersistentClient(path=test_path) collection = client.get_or_create_collection(name='test') print('✅ ChromaDB 本地数据库创建成功') " ``` ### 5. 依赖包 已安装的依赖: - `chromadb>=1.0.20` - ChromaDB 核心库 - `langchain-chroma>=0.1.0` - LangChain Chroma 集成 ### 6. 注意事项 - 向量数据库数据存储在本地文件系统,无需额外服务 - 每个知识库的向量数据独立存储 - 删除知识库时,对应的向量数据目录也会被清理 - 确保 `data/chroma/` 目录有写入权限 ## 故障排查 ### 问题:向量数据库不存在 **原因**:文档尚未被处理和向量化 **解决**: 1. 先调用处理文档接口:`POST /api/knowledge-bases/{kb_id}/documents/{doc_id}/process` 2. 处理完成后,向量数据库会自动创建 ### 问题:权限错误 **解决**: ```bash chmod -R 755 data/chroma/ ``` ### 问题:磁盘空间不足 **解决**:清理不需要的知识库向量数据,或扩展存储空间