feat: 添加 Docker 部署支持和多 OCR 提供商架构

- 添加完整的 Docker 配置 (Dockerfile, docker-compose.yml)
- 修复前端硬编码端口 4000,改用相对路径 /api
- 实现多 OCR 提供商架构 (Tesseract.js/Baidu/RapidOCR)
- 修复 Docker 环境中图片上传路径问题
- 添加用户设置页面和 AI 分析服务
- 更新 Prisma schema 支持 AI 分析结果
- 添加部署文档和 OCR 配置指南

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
congsh
2026-02-26 18:20:46 +08:00
parent f8472987f0
commit 358deeb380
39 changed files with 3169 additions and 71 deletions

56
.env.production.example Normal file
View File

@@ -0,0 +1,56 @@
# ========================================
# PicAnalysis 生产环境配置示例
# ========================================
# 复制此文件为 .env 并填写实际值
# ===========================
# JWT 认证配置
# ===========================
# 生成强密钥: openssl rand -base64 32
JWT_SECRET="CHANGE_THIS_TO_A_STRONG_RANDOM_KEY"
JWT_EXPIRES_IN="24h"
# ===========================
# 服务端口配置
# ===========================
# 前端对外暴露的端口 (默认 80)
FRONTEND_PORT="80"
# ===========================
# OCR 配置
# ===========================
# OCR Provider: tesseract | baidu | rapidocr | auto
# - tesseract: 本地轻量,已包含在后端镜像中
# - baidu: 云端准确,需要配置 API Key (有免费额度)
# - rapidocr: 本地快速准确,通过 Docker 服务提供
# - auto: 自动选择可用的 provider
OCR_PROVIDER="auto"
OCR_CONFIDENCE_THRESHOLD="0.3"
# Baidu OCR (可选)
# 获取地址: https://cloud.baidu.com/product/ocr
BAIDU_OCR_API_KEY=""
BAIDU_OCR_SECRET_KEY=""
# RapidOCR (通过 Docker Compose 自动配置,通常无需修改)
RAPIDOCR_API_URL="http://rapidocr:8080"
# ===========================
# AI 分析配置 (可选)
# ===========================
# GLM (智谱 AI)
GLM_API_KEY=""
GLM_API_URL="https://open.bigmodel.cn/api/paas/v4/chat/completions"
GLM_MODEL="glm-4-flash"
# MiniMax (可选)
MINIMAX_API_KEY=""
# DeepSeek (可选)
DEEPSEEK_API_KEY=""
# ===========================
# 文件上传配置
# ===========================
UPLOAD_MAX_SIZE="10485760"
UPLOAD_ALLOWED_TYPES="image/jpeg,image/png,image/webp"