入门指南

环境配置

EduBuddy 通过 backend/.env 文件管理所有运行时配置。本页列出所有可用的环境变量及其说明。

完整配置示例

# ===== AI 服务配置 =====
OPENAI_API_KEY=sk-your-api-key-here
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o

# ===== 服务器配置 =====
PORT=3001
NODE_ENV=development

# ===== 安全配置 =====
JWT_SECRET=change-this-to-a-random-secret-in-production
JWT_EXPIRES_IN=7d

# ===== 数据库配置 =====
DB_PATH=./data/edubuddy.db

# ===== 文件上传配置 =====
UPLOAD_DIR=./uploads
MAX_FILE_SIZE=10485760

# ===== 速率限制配置 =====
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX=200

变量详解

AI 服务配置

变量名必填默认值说明
OPENAI_API_KEY✅ 是AI 服务的 API 密钥
OPENAI_BASE_URLhttps://api.openai.com/v1AI 服务的 Base URL,用于切换国内兼容服务
OPENAI_MODELgpt-4o使用的模型名称,需与服务商支持的模型对应
图片 OCR 功能(POST /api/upload/image)需要模型支持 Vision 能力,如 gpt-4ogpt-4-vision-preview。语音转文字功能调用 Whisper API(whisper-1),需要 OpenAI 官方 API Key 或兼容接口。

服务器配置

变量名必填默认值说明
PORT3001后端服务监听端口
NODE_ENVdevelopment运行环境;生产环境设为 production 以隐藏错误详情

安全配置

变量名必填默认值说明
JWT_SECRETedubuddy-secret-keyJWT 签名密钥,生产环境务必修改为随机字符串
JWT_EXPIRES_IN7dJWT Token 有效期,支持 1h7d30d 等格式

数据库配置

变量名必填默认值说明
DB_PATH./data/edubuddy.dbSQLite 数据库文件路径,首次运行自动创建

文件上传配置

变量名必填默认值说明
UPLOAD_DIR./uploads上传文件存储目录,自动创建
MAX_FILE_SIZE10485760(10 MB)单文件最大字节数

速率限制配置

变量名必填默认值说明
RATE_LIMIT_WINDOW_MS900000(15 分钟)速率限制滑动窗口时长(毫秒)
RATE_LIMIT_MAX200窗口内最大请求数(全局 API)
AI 相关接口(生成题目、AI 解题、AI 分析、生成学习路线)有独立的速率限制:每分钟最多 20 次,该值目前为硬编码,如需调整请修改 backend/src/server.tsaiLimitermax 值。

前端环境变量

前端通过 Vite 的 .env 机制配置,在 frontend/ 目录下创建 .env.local 文件:

# 后端 API 地址(默认 http://localhost:3001/api)
VITE_API_URL=http://localhost:3001/api

生产环境部署时,将 VITE_API_URL 改为实际的后端域名:

VITE_API_URL=https://api.yourdomain.com/api

生成安全的 JWT 密钥

可使用以下命令生成一个随机的高强度密钥:

# 方法一:openssl
openssl rand -base64 64

# 方法二:Node.js
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"