| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import dotenv from 'dotenv';
- import path from 'path';
- import { fileURLToPath } from 'url';
- dotenv.config();
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
- export const config = {
- env: process.env.NODE_ENV || 'development',
- version: process.env.npm_package_version || '1.0.0',
- port: parseInt(process.env.PORT || '3000', 10),
- // 服务监听地址:127.0.0.1 仅本地访问,0.0.0.0 允许局域网访问
- host: process.env.HOST || '127.0.0.1',
- // 数据库配置
- database: {
- host: process.env.DB_HOST || 'localhost',
- port: parseInt(process.env.DB_PORT || '3306', 10),
- username: process.env.DB_USERNAME || 'root',
- password: process.env.DB_PASSWORD || '',
- database: process.env.DB_DATABASE || 'media_manager',
- },
- // Redis 配置
- redis: {
- host: process.env.REDIS_HOST || 'localhost',
- port: parseInt(process.env.REDIS_PORT || '6379', 10),
- password: process.env.REDIS_PASSWORD || undefined,
- db: parseInt(process.env.REDIS_DB || '0', 10),
- },
- // JWT 配置
- jwt: {
- secret: process.env.JWT_SECRET || 'your-super-secret-key-change-in-production',
- accessExpiresIn: process.env.JWT_ACCESS_EXPIRES_IN || '15m',
- refreshExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '7d',
- },
- // CORS 配置
- cors: {
- origin: process.env.CORS_ORIGIN?.split(',') || ['http://localhost:5173'],
- },
- // 上传配置
- upload: {
- path: process.env.UPLOAD_PATH || path.join(__dirname, '../../uploads'),
- maxVideoSize: parseInt(process.env.MAX_VIDEO_SIZE || '4096', 10) * 1024 * 1024, // MB to bytes
- maxImageSize: parseInt(process.env.MAX_IMAGE_SIZE || '10', 10) * 1024 * 1024,
- allowedVideoTypes: ['video/mp4', 'video/quicktime', 'video/x-flv'],
- allowedImageTypes: ['image/jpeg', 'image/png', 'image/gif', 'image/webp'],
- },
- // 加密配置
- encryption: {
- key: process.env.ENCRYPTION_KEY || 'your-encryption-key-32-chars-long!',
- },
- // 内部 API 密钥(供 Python 服务调用)
- internalApiKey: process.env.INTERNAL_API_KEY || 'internal-api-key-default',
- // AI 配置 - 阿里云百炼千问大模型
- ai: {
- apiKey: process.env.DASHSCOPE_API_KEY || process.env.OPENAI_API_KEY || '',
- baseUrl: process.env.DASHSCOPE_BASE_URL || process.env.OPENAI_BASE_URL || 'https://dashscope.aliyuncs.com/compatible-mode/v1',
- // 默认模型配置
- defaultModel: process.env.AI_DEFAULT_MODEL || 'qwen-plus',
- // 可用模型列表
- models: {
- // 商业版模型
- chat: process.env.AI_CHAT_MODEL || 'qwen-plus', // 对话模型
- fast: process.env.AI_FAST_MODEL || 'qwen-turbo', // 快速模型
- reasoning: process.env.AI_REASONING_MODEL || 'qwq-plus', // 推理模型
- vision: process.env.AI_VISION_MODEL || 'qwen-vl-plus', // 视觉理解模型
- coder: process.env.AI_CODER_MODEL || 'qwen-coder-plus', // 代码模型
- embedding: process.env.AI_EMBEDDING_MODEL || 'text-embedding-v3', // 嵌入模型
- },
- // 请求配置
- timeout: parseInt(process.env.AI_TIMEOUT || '60000', 10),
- maxRetries: parseInt(process.env.AI_MAX_RETRIES || '3', 10),
- },
- };
|