7.9 KiB
7.9 KiB
配置指南
🌍 Language / 语言
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. 修改代码配置
- 编辑
worker.js文件 - 修改
CONFIG对象中的相应值 - 保存文件
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