故障排查

常见问题和解决方案

故障排查指南

本文档帮助您诊断和解决 DeepTrans Studio 使用过程中可能遇到的常见问题。如果问题仍未解决,请查看日志或提交 Issue。

安装与启动

安装、配置和启动相关的问题

1
Node.js 版本不兼容

问题:

  • 运行 yarn dev 时提示 Node.js 版本错误
  • 某些依赖包安装失败
  • 构建过程中出现语法错误

解决方案:

  • 确保 Node.js 版本 ≥ 18.18
  • 使用 nvm 或 corepack 管理 Node.js 版本
  • 运行 `node --version` 检查当前版本
  • 如果使用 corepack,运行 `corepack enable` 启用
2
Yarn 安装依赖失败

问题:

  • yarn install 执行失败
  • 依赖包下载超时
  • 权限错误

解决方案:

  • 检查网络连接,可能需要配置代理
  • 清除缓存:`yarn cache clean`
  • 删除 node_modules 和 yarn.lock,重新安装
  • 使用 corepack 管理 Yarn:`corepack prepare yarn@1.22.22 --activate`
3
Docker Compose 服务启动失败

问题:

  • docker compose up 报错
  • 容器无法启动
  • 端口被占用

解决方案:

  • 检查 Docker 和 Docker Compose 是否正确安装
  • 检查端口占用:`lsof -i :5432`(PostgreSQL)、`lsof -i :6379`(Redis)
  • 查看容器日志:`docker compose logs [service-name]`
  • 尝试重启服务:`docker compose restart [service-name]`
  • 清理并重新创建:`docker compose down -v && docker compose up -d`
4
环境变量配置错误

问题:

  • 应用启动后无法连接数据库
  • Redis 连接失败
  • API 调用返回认证错误

解决方案:

  • 检查 .env.local 文件是否存在且格式正确
  • 确认 DATABASE_URL 格式:`postgresql://user:password@host:port/database`
  • 确认 REDIS_URL 格式:`redis://host:port`
  • 检查 AUTH_SECRET 是否已设置(运行 `openssl rand -base64 32` 生成)
  • 重启开发服务器使环境变量生效

数据库问题

PostgreSQL 和 Prisma 相关问题

1
数据库连接失败

问题:

  • 应用启动时报错:无法连接到数据库
  • Prisma Client 初始化失败
  • 数据库查询超时

解决方案:

  • 检查 PostgreSQL 服务是否运行:`docker compose ps db`
  • 验证 DATABASE_URL 环境变量是否正确
  • 测试数据库连接:`psql $DATABASE_URL`
  • 检查数据库是否已创建:`psql -l`
  • 查看数据库日志:`docker compose logs db`
2
Prisma 迁移失败

问题:

  • yarn prisma migrate deploy 执行失败
  • 数据库架构不匹配
  • 迁移文件冲突

解决方案:

  • 检查数据库连接是否正常
  • 查看迁移历史:`yarn prisma migrate status`
  • 重置数据库(开发环境):`yarn prisma migrate reset`
  • 手动应用迁移:`yarn prisma migrate deploy`
  • 重新生成 Prisma Client:`yarn prisma generate`
3
Prisma Studio 无法打开

问题:

  • yarn prisma studio 命令无响应
  • 浏览器无法访问 Prisma Studio

解决方案:

  • 检查数据库连接
  • 确认端口 5555 未被占用
  • 尝试使用其他端口:`yarn prisma studio --port 5556`
  • 检查防火墙设置

Redis 和队列问题

Redis 连接和 BullMQ 队列相关问题

1
Redis 连接失败

问题:

  • 应用启动时报 Redis 连接错误
  • 队列任务无法执行
  • Worker 无法消费任务

解决方案:

  • 检查 Redis 服务是否运行:`docker compose ps redis`
  • 验证 REDIS_URL 环境变量
  • 测试 Redis 连接:`redis-cli -u $REDIS_URL ping`
  • 查看 Redis 日志:`docker compose logs redis`
  • 检查 Redis 内存使用:`redis-cli info memory`
2
队列任务堆积

问题:

  • 任务执行缓慢
  • 队列中任务数量持续增长
  • Worker 处理速度跟不上

解决方案:

  • 检查 Worker 服务是否正常运行
  • 增加 Worker 实例数量
  • 查看队列状态:`yarn queue:ui`(如果配置了 Bull Board)
  • 检查 Redis 内存使用情况
  • 清理失败的任务:`redis-cli FLUSHDB`(谨慎使用)
3
任务执行失败

问题:

  • 批量翻译任务失败
  • Worker 日志显示错误
  • 任务状态一直为 PENDING

解决方案:

  • 查看 Worker 日志:`docker compose logs worker`
  • 检查任务数据格式是否正确
  • 验证相关服务(Milvus、MinIO、PDFMath)是否正常
  • 检查 API 密钥和配置是否正确
  • 查看 Redis 中的失败任务:`redis-cli KEYS 'bull:*:failed'`

Milvus 向量库问题

Milvus 向量数据库相关问题

1
Milvus 连接失败

问题:

  • 翻译记忆库搜索失败
  • 向量写入失败
  • Milvus 服务无法访问

解决方案:

  • 检查 Milvus 和 etcd 服务是否运行:`docker compose ps milvus etcd`
  • 验证 Milvus 连接配置
  • 查看 Milvus 日志:`docker compose logs milvus`
  • 检查 etcd 状态:`docker compose logs etcd`
  • 访问 Attu UI(http://localhost:8001)检查 Milvus 状态
2
向量集合不存在

问题:

  • 搜索时提示集合不存在
  • 向量写入失败,提示集合未找到

解决方案:

  • 检查集合是否已创建
  • 在 Attu UI 中查看集合列表
  • 重新初始化集合(应用会自动创建)
  • 检查集合名称是否正确
3
向量维度不匹配

问题:

  • 向量写入失败,提示维度错误
  • 搜索时返回维度不匹配错误

解决方案:

  • 检查嵌入模型配置,确保维度一致(默认 1536)
  • 删除并重建集合(开发环境)
  • 验证向量生成代码中的维度设置

PDFMath 服务问题

PDF 解析服务相关问题

1
PDFMath 服务无法访问

问题:

  • 文档解析失败
  • PDF 文件上传后无法处理
  • 解析任务一直处于 PENDING 状态

解决方案:

  • 检查 PDFMath 服务是否运行:`docker compose ps pdfmath`
  • 查看 PDFMath 日志:`docker compose logs pdfmath`
  • 验证 PDFMath 服务 URL 配置
  • 测试服务连接:`curl http://localhost:8000/health`(如果配置了健康检查)
  • 检查 PDF 文件是否损坏或格式不支持
2
PDF 解析超时

问题:

  • 大文件解析时间过长
  • 解析任务超时失败

解决方案:

  • 检查文件大小(建议不超过 100MB)
  • 增加超时时间配置
  • 检查 PDFMath 服务资源使用情况
  • 考虑将大文件拆分为多个小文件

MinIO 对象存储问题

MinIO 存储服务相关问题

1
MinIO 连接失败

问题:

  • 文件上传失败
  • 文档预览无法加载
  • 存储操作报错

解决方案:

  • 检查 MinIO 服务是否运行:`docker compose ps minio`
  • 验证 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY 配置
  • 检查 MINIO_BUCKET 是否存在
  • 查看 MinIO 日志:`docker compose logs minio`
  • 访问 MinIO Console(默认 http://localhost:9001)检查状态
2
文件上传失败

问题:

  • 文档上传后无法保存
  • 上传进度卡住
  • 存储空间不足错误

解决方案:

  • 检查磁盘空间:`df -h`
  • 验证 MinIO 存储路径权限
  • 检查文件大小限制
  • 查看 MinIO 错误日志
  • 验证 S3 兼容 API 配置

Worker 服务问题

后台 Worker 服务相关问题

1
Worker 无法启动

问题:

  • docker compose up worker 失败
  • 本地 yarn dev:worker 报错
  • Worker 进程立即退出

解决方案:

  • 检查环境变量配置
  • 验证 Redis 连接
  • 查看 Worker 日志:`docker compose logs worker`
  • 检查 Node.js 版本
  • 验证依赖是否正确安装
  • 检查构建产物:`yarn build:worker`
2
Worker 不处理任务

问题:

  • 任务一直处于 PENDING 状态
  • 队列中有任务但 Worker 不消费

解决方案:

  • 检查 Worker 是否正常运行
  • 验证队列名称配置是否正确
  • 检查 Worker 日志中的错误信息
  • 确认 Worker 订阅了正确的队列
  • 重启 Worker 服务

应用运行时问题

Next.js 应用运行时相关问题

1
页面加载缓慢

问题:

  • 页面响应时间长
  • 首次加载很慢
  • API 请求超时

解决方案:

  • 检查数据库查询性能,使用 Prisma Studio 分析
  • 优化数据库索引
  • 检查 Redis 缓存是否正常工作
  • 查看浏览器网络面板分析请求时间
  • 检查服务器资源使用情况(CPU、内存)
2
认证失败

问题:

  • 登录后立即退出
  • Session 无法保持
  • API 请求返回 401

解决方案:

  • 检查 AUTH_SECRET 是否已设置
  • 验证 NEXTAUTH_URL 配置是否正确
  • 清除浏览器 Cookie 和 LocalStorage
  • 检查 NextAuth 配置
  • 查看服务器日志中的认证错误
3
API 路由错误

问题:

  • API 请求返回 404
  • Server Actions 执行失败
  • 路由无法访问

解决方案:

  • 检查路由文件是否存在
  • 验证 API 路径是否正确
  • 查看 Next.js 构建日志
  • 检查中间件配置
  • 验证请求方法和参数

调试技巧

常用的调试方法和工具

查看日志
查看各服务的日志信息
  • docker compose logs [service-name] -f
  • docker compose logs --tail=100 [service-name]
  • 查看 Next.js 控制台输出
  • 查看浏览器开发者工具 Console
检查服务状态
验证各个服务是否正常运行
  • docker compose ps
  • docker compose top
  • 检查端口占用:lsof -i :PORT
  • 测试服务连接:curl http://localhost:PORT
数据库调试
使用 Prisma Studio 查看和调试数据库
  • yarn prisma studio
  • yarn prisma migrate status
  • psql $DATABASE_URL(直接连接数据库)
队列调试
监控和调试 BullMQ 队列
  • yarn queue:ui(如果配置了 Bull Board)
  • redis-cli KEYS 'bull:*'
  • redis-cli GET 'bull:queue:job:ID'

获取帮助

如果问题仍未解决,可以通过以下方式获取帮助:

查看文档
查阅完整的文档和 API 参考
GitHub Issues
在 GitHub 仓库提交 Issue,详细描述问题现象、错误信息和复现步骤
检查日志
收集相关服务的日志信息,有助于问题诊断
社区支持
在项目社区中寻求帮助,分享问题和解决方案