108 lines
2.7 KiB
Markdown
108 lines
2.7 KiB
Markdown
|
|
# 诊断文档上传卡住问题
|
|||
|
|
|
|||
|
|
## 问题现象
|
|||
|
|
- 界面显示:AI服务已连接、向量存储正常
|
|||
|
|
- 但上传文档时一直加载,无法完成
|
|||
|
|
|
|||
|
|
## 可能原因
|
|||
|
|
|
|||
|
|
### 1. 向量化超时
|
|||
|
|
**症状**:上传卡在向量化步骤
|
|||
|
|
**原因**:AI服务响应慢或模型未加载
|
|||
|
|
|
|||
|
|
### 2. ChromaDB连接问题
|
|||
|
|
**症状**:向量化完成但存储失败
|
|||
|
|
**原因**:ChromaDB服务未启动或连接超时
|
|||
|
|
|
|||
|
|
### 3. 文件太大
|
|||
|
|
**症状**:大文件处理时间长
|
|||
|
|
**原因**:分块数量多,向量化耗时
|
|||
|
|
|
|||
|
|
## 快速诊断步骤
|
|||
|
|
|
|||
|
|
### 步骤1:查看后端日志
|
|||
|
|
上传文档时,观察后端控制台输出,找到最后一条日志:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
✓ 正常流程:
|
|||
|
|
Uploading document: xxx.txt
|
|||
|
|
Parsed document: 1234 characters
|
|||
|
|
Split document into 5 chunks
|
|||
|
|
Starting vectorization for 5 chunks... ← 如果卡在这里,是向量化问题
|
|||
|
|
Successfully generated 5 embeddings ← 如果卡在这里,是存储问题
|
|||
|
|
Stored 5 chunks to ChromaDB
|
|||
|
|
Document uploaded successfully
|
|||
|
|
|
|||
|
|
✗ 如果卡住,会停在某一步不动
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤2:检查服务状态
|
|||
|
|
运行:`检查RAG服务状态.bat`
|
|||
|
|
|
|||
|
|
或手动检查:
|
|||
|
|
```bash
|
|||
|
|
# 检查Ollama
|
|||
|
|
curl http://localhost:11434/api/tags
|
|||
|
|
|
|||
|
|
# 检查ChromaDB(如果使用)
|
|||
|
|
curl http://localhost:8000/api/v1/heartbeat
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 解决方案
|
|||
|
|
|
|||
|
|
### 方案A:使用SimpleVectorStore(推荐,最快)
|
|||
|
|
**优点**:无需安装额外服务,内存存储,速度快
|
|||
|
|
**缺点**:重启后数据丢失(可配置持久化)
|
|||
|
|
|
|||
|
|
**操作**:
|
|||
|
|
1. 确认`useSimpleStore = true`(代码中已默认)
|
|||
|
|
2. 重启后端服务
|
|||
|
|
3. 测试上传
|
|||
|
|
|
|||
|
|
### 方案B:安装ChromaDB(生产环境推荐)
|
|||
|
|
**优点**:数据持久化,性能好
|
|||
|
|
**缺点**:需要安装Python和ChromaDB
|
|||
|
|
|
|||
|
|
**快速安装**:
|
|||
|
|
```bash
|
|||
|
|
# 1. 安装ChromaDB
|
|||
|
|
pip install chromadb
|
|||
|
|
|
|||
|
|
# 2. 启动服务
|
|||
|
|
chroma run --host localhost --port 8000
|
|||
|
|
|
|||
|
|
# 3. 验证
|
|||
|
|
curl http://localhost:8000/api/v1/heartbeat
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方案C:增加超时时间
|
|||
|
|
如果服务正常但处理慢,增加超时:
|
|||
|
|
|
|||
|
|
修改`RagProperties.java`:
|
|||
|
|
```java
|
|||
|
|
private int connectTimeout = 60; // 改为60秒
|
|||
|
|
private int readTimeout = 600; // 改为600秒
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 当前最可能的问题
|
|||
|
|
|
|||
|
|
根据你的描述"服务都正常"但"没有ChromaDB",系统应该已经在使用SimpleVectorStore。
|
|||
|
|
|
|||
|
|
**上传卡住最可能的原因是**:
|
|||
|
|
1. 向量化服务(Ollama/OpenAI)响应慢
|
|||
|
|
2. 后端没有重启,还在使用旧代码
|
|||
|
|
|
|||
|
|
## 立即尝试
|
|||
|
|
|
|||
|
|
### 1. 重启后端服务
|
|||
|
|
确保最新代码生效
|
|||
|
|
|
|||
|
|
### 2. 上传小文件测试
|
|||
|
|
先上传一个很小的txt文件(几行文字),看是否能成功
|
|||
|
|
|
|||
|
|
### 3. 查看后端日志
|
|||
|
|
找到卡住的具体位置
|
|||
|
|
|
|||
|
|
### 4. 告诉我日志内容
|
|||
|
|
把后端日志最后几行发给我,我帮你定位问题
|