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. 告诉我日志内容
|
||
把后端日志最后几行发给我,我帮你定位问题
|