Files
AI-Proxy-Worker/docs/Configuration.md
2025-08-17 19:59:10 +08:00

7.9 KiB
Raw Blame History

配置指南

🌍 Language / 语言

🇺🇸 English | 🇨🇳 中文

AI Proxy Worker 提供了多种配置选项,让你可以根据需求定制代理的行为。配置分为两类:环境变量配置和代码配置。

🔑 环境变量配置

这些配置通过 Cloudflare Workers 的 Secret 功能设置,在代码中无法看到具体值,确保安全性。

必需的环境变量

变量名 类型 说明 示例
DEEPSEEK_API_KEY Secret DeepSeek API 密钥 sk-...

设置方法:

wrangler secret put DEEPSEEK_API_KEY
# 输入你的 DeepSeek API 密钥

可选的环境变量

变量名 类型 说明 默认值
PROXY_KEY Secret 代理访问密钥,用于保护你的代理 无(不启用认证)

设置方法:

wrangler secret put PROXY_KEY
# 输入自定义的访问密钥my-secret-key-2025

使用建议:

  • 生产环境强烈建议设置 PROXY_KEY
  • 使用强密码生成器生成访问密钥
  • 定期轮换密钥以提高安全性

⚙️ 代码配置

这些配置在 worker.js 文件的 CONFIG 对象中定义,可以根据需要修改。

核心配置项

DEEPSEEK_API_URL

  • 类型String
  • 默认值'https://api.deepseek.com/chat/completions'
  • 说明DeepSeek API 的端点地址
  • 修改场景:通常不需要修改,除非 DeepSeek 更改了 API 端点
DEEPSEEK_API_URL: 'https://api.deepseek.com/chat/completions'

MAX_BODY_SIZE

  • 类型Number
  • 默认值1024 * 1024 (1MB)
  • 说明:请求体的最大大小限制(字节)
  • 修改场景
    • 增大:如果需要处理更长的对话历史
    • 减小:如果想要更严格的限制以防止滥用
MAX_BODY_SIZE: 1024 * 1024  // 1MB
MAX_BODY_SIZE: 2 * 1024 * 1024  // 2MB更宽松
MAX_BODY_SIZE: 512 * 1024  // 512KB更严格

REQUEST_TIMEOUT

  • 类型Number
  • 默认值30000 (30秒)
  • 说明:向 DeepSeek API 请求的超时时间(毫秒)
  • 修改场景
    • 增大:如果经常遇到超时错误
    • 减小:如果想要更快的失败响应
REQUEST_TIMEOUT: 30000   // 30秒默认
REQUEST_TIMEOUT: 60000   // 60秒更宽松
REQUEST_TIMEOUT: 15000   // 15秒更严格

VALIDATE_REQUEST_BODY

  • 类型Boolean
  • 默认值false
  • 说明:是否启用严格的请求体格式验证
  • 修改场景
    • true:启用严格验证,会检查 messages 格式
    • false:宽松模式,让 DeepSeek API 自己处理验证
VALIDATE_REQUEST_BODY: false  // 宽松模式(推荐)
VALIDATE_REQUEST_BODY: true   // 严格模式

DEFAULT_MODEL

  • 类型String
  • 默认值'deepseek-chat'
  • 说明:当请求中没有指定模型时使用的默认模型
  • 修改场景:根据你的主要使用场景选择
DEFAULT_MODEL: 'deepseek-chat'      // 通用对话(默认)
DEFAULT_MODEL: 'deepseek-reasoner'  // 推理任务为主

SUPPORTED_MODELS

  • 类型Array
  • 默认值['deepseek-chat', 'deepseek-reasoner']
  • 说明:支持的模型列表,用于验证和文档
  • 修改场景:当 DeepSeek 发布新模型时更新
SUPPORTED_MODELS: [
  'deepseek-chat',      // 通用对话模型
  'deepseek-reasoner'   // 推理模型
]

CORS 配置

CORS_HEADERS

  • 说明:跨域请求的响应头配置
  • 默认配置:允许所有域名访问
const CORS_HEADERS = {
  'Access-Control-Allow-Origin': '*',
  'Access-Control-Allow-Methods': 'POST, GET, OPTIONS',
  'Access-Control-Allow-Headers': 'Content-Type, Authorization',
  'Access-Control-Max-Age': '86400',
};

生产环境建议:

// 限制特定域名
'Access-Control-Allow-Origin': 'https://yourdomain.com'

// 或者支持多个域名
'Access-Control-Allow-Origin': request.headers.get('origin') // 需要额外的验证逻辑

安全配置

SECURITY_HEADERS

  • 说明:安全相关的响应头
  • 默认配置:基础安全防护
const SECURITY_HEADERS = {
  'X-Content-Type-Options': 'nosniff',
  'X-Frame-Options': 'DENY',
  'X-XSS-Protection': '1; mode=block',
  'Referrer-Policy': 'strict-origin-when-cross-origin',
};

🛠️ 高级配置

自定义配置示例

如果你需要更复杂的配置,可以这样修改:

// 开发环境配置
const CONFIG = {
  DEEPSEEK_API_URL: 'https://api.deepseek.com/chat/completions',
  MAX_BODY_SIZE: 2 * 1024 * 1024, // 2MB更宽松
  REQUEST_TIMEOUT: 60000, // 60秒更长的超时
  VALIDATE_REQUEST_BODY: true, // 启用严格验证
  DEFAULT_MODEL: 'deepseek-chat',
  SUPPORTED_MODELS: [
    'deepseek-chat',
    'deepseek-reasoner'
  ]
};

// 生产环境配置
const CONFIG = {
  DEEPSEEK_API_URL: 'https://api.deepseek.com/chat/completions',
  MAX_BODY_SIZE: 512 * 1024, // 512KB更严格
  REQUEST_TIMEOUT: 15000, // 15秒更快失败
  VALIDATE_REQUEST_BODY: false, // 宽松验证,更好的兼容性
  DEFAULT_MODEL: 'deepseek-chat',
  SUPPORTED_MODELS: [
    'deepseek-chat',
    'deepseek-reasoner'
  ]
};

环境特定配置

你也可以在 wrangler.toml 中设置环境特定的配置:

name = "ai-proxy-worker"
main = "worker.js"
compatibility_date = "2025-08-17"

# 生产环境
[env.production]
name = "ai-proxy-worker-prod"
vars = { ENVIRONMENT = "production" }

# 开发环境
[env.development]
name = "ai-proxy-worker-dev"
vars = { ENVIRONMENT = "development" }

然后在代码中使用:

// 根据环境调整配置
const isProduction = env.ENVIRONMENT === 'production';

const CONFIG = {
  // ... 其他配置
  MAX_BODY_SIZE: isProduction ? 512 * 1024 : 2 * 1024 * 1024,
  REQUEST_TIMEOUT: isProduction ? 15000 : 60000,
  VALIDATE_REQUEST_BODY: !isProduction, // 开发环境启用严格验证
};

📝 配置最佳实践

1. 安全配置

// ✅ 推荐:生产环境限制 CORS
'Access-Control-Allow-Origin': 'https://yourdomain.com'

// ❌ 避免:生产环境使用通配符
'Access-Control-Allow-Origin': '*'

2. 性能配置

// ✅ 推荐:合理的超时时间
REQUEST_TIMEOUT: 30000  // 30秒

// ❌ 避免:过长的超时时间
REQUEST_TIMEOUT: 300000  // 5分钟太长

3. 兼容性配置

// ✅ 推荐:宽松的验证模式
VALIDATE_REQUEST_BODY: false

// ⚠️ 注意:严格模式可能导致某些客户端失败
VALIDATE_REQUEST_BODY: true

🔧 配置修改步骤

1. 修改代码配置

  1. 编辑 worker.js 文件
  2. 修改 CONFIG 对象中的相应值
  3. 保存文件

2. 重新部署

wrangler publish

3. 验证配置

# 测试健康检查
curl https://your-worker.workers.dev/

# 测试 API 调用
curl -X POST https://your-worker.workers.dev/chat \
  -H "Authorization: Bearer YOUR_PROXY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek-chat","messages":[{"role":"user","content":"test"}]}'

常见配置问题

Q: 如何增加请求体大小限制?

A: 修改 MAX_BODY_SIZE 配置:

MAX_BODY_SIZE: 2 * 1024 * 1024  // 增加到 2MB

Q: 如何设置更严格的超时?

A: 修改 REQUEST_TIMEOUT 配置:

REQUEST_TIMEOUT: 15000  // 减少到 15秒

Q: 如何禁用请求验证?

A: 设置 VALIDATE_REQUEST_BODY 为 false

VALIDATE_REQUEST_BODY: false

Q: 如何限制 CORS 域名?

A: 修改 CORS_HEADERS 中的 Access-Control-Allow-Origin

'Access-Control-Allow-Origin': 'https://yourdomain.com'

需要帮助? 👉 故障排除指南 | GitHub Issues