5.7 KiB
5.7 KiB
贡献指南
🌍 Language / 语言
感谢你对 AI Proxy Worker 项目的关注!本指南将帮助你了解如何参与项目开发。
🚀 快速开始
前置要求
- Node.js 18+ 和 npm
- Git
- Cloudflare 账户(用于测试)
- JavaScript 和 Cloudflare Workers 基础知识
开发环境设置
# 克隆仓库
git clone https://github.com/qinfuyao/AI-Proxy-Worker.git
cd ai-proxy-worker
# 安装依赖
npm install -g wrangler
# 登录 Cloudflare
wrangler login
# 设置开发环境
cp wrangler.toml.example wrangler.toml
# 编辑 wrangler.toml 配置你的设置
🔧 开发流程
1. Fork 和 Clone
# 在 GitHub 上 Fork 仓库,然后克隆你的 fork
git clone https://github.com/qinfuyao/AI-Proxy-Worker.git
cd ai-proxy-worker
# 添加上游远程仓库
git remote add upstream https://github.com/original-owner/ai-proxy-worker.git
2. 创建功能分支
# 创建并切换到新分支
git checkout -b feature/your-feature-name
# 或者修复 bug
git checkout -b fix/bug-description
3. 本地开发
# 启动本地开发服务器
wrangler dev
# 测试你的更改
curl -X POST http://localhost:8787/chat \
-H "Content-Type: application/json" \
-d '{"model": "deepseek-chat", "messages": [{"role": "user", "content": "测试"}]}'
4. 测试
# 运行测试(如果可用)
npm test
# 手动测试清单:
# - 基本聊天功能
# - 流式响应
# - 错误处理
# - 身份验证
5. 提交和推送
# 添加更改
git add .
# 使用描述性消息提交
git commit -m "feat: 添加新 AI 模型支持"
# 推送到你的 fork
git push origin feature/your-feature-name
6. 创建 Pull Request
- 在 GitHub 上访问你的 fork
- 点击 "New Pull Request"
- 填写 PR 模板
- 等待审查
📝 代码规范
JavaScript 风格
- 使用现代 ES6+ 特性
- 保持一致的缩进(2个空格)
- 使用有意义的变量名
- 为复杂逻辑添加注释
// 好的示例
const handleChatRequest = async (request, env) => {
const { messages, model } = await request.json();
// 验证必需字段
if (!messages || !Array.isArray(messages)) {
throw new Error('消息必须是数组格式');
}
return await processChat(messages, model, env);
};
// 避免这样写
const h = async (r, e) => {
const d = await r.json();
return await p(d.m, d.mod, e);
};
错误处理
始终提供有意义的错误消息:
// 好的示例
if (!env.DEEPSEEK_API_KEY) {
return new Response(JSON.stringify({
error: 'configuration_error',
message: '需要设置 DEEPSEEK_API_KEY 环境变量',
timestamp: new Date().toISOString()
}), {
status: 500,
headers: { 'Content-Type': 'application/json' }
});
}
安全最佳实践
- 永远不要记录敏感信息(API 密钥、用户数据)
- 验证所有输入参数
- 使用适当的 HTTP 状态码
- 在适当的地方实施速率限制
🐛 Bug 报告
报告前检查
- 检查现有 issues
- 使用最新版本测试
- 能够一致地重现问题
Bug 报告模板
**Bug 描述**
清楚地描述 bug 是什么。
**重现步骤**
1. 使用配置 X 部署 worker
2. 发送载荷 Y 的请求
3. 观察到错误 Z
**预期行为**
应该发生什么。
**环境信息**
- Cloudflare Workers 版本
- 使用的浏览器/客户端
- 任何相关配置
**附加上下文**
日志、截图或其他有用信息。
💡 功能请求
功能请求模板
**功能描述**
清楚地描述你希望看到的功能。
**使用场景**
解释为什么这个功能有用。
**建议实现**
如果你对如何实现有想法。
**考虑的替代方案**
你考虑过的其他解决方案。
📖 文档
写作指南
- 使用清晰、简洁的语言
- 提供实用示例
- 包含中英文版本
- 测试所有代码示例
文档结构
docs/
├── Installation.md/en.md # 安装指南
├── Configuration.md/en.md # 配置选项
├── API-Reference.md/en.md # API 文档
├── Examples.md/en.md # 使用示例
├── Troubleshooting.md/en.md # 常见问题
└── Contributing.md/en.md # 本文件
🔄 发布流程
版本编号
我们遵循 语义化版本:
主版本.次版本.修订版本- 主版本:不兼容的 API 修改
- 次版本:向下兼容的功能性新增
- 修订版本:向下兼容的问题修正
发布清单
- 更新
wrangler.toml中的版本 - 更新 CHANGELOG.md
- 测试所有功能
- 更新文档
- 创建发布说明
- 标记发布
🏆 致谢
贡献者
所有贡献者将在以下地方得到认可:
- README.md 贡献者部分
- 发布说明
- GitHub 贡献者页面
贡献类型
- 🐛 Bug 修复
- ✨ 新功能
- 📝 文档
- 🎨 UI/UX 改进
- 🔧 基础设施
- 🌍 翻译
❓ 获取帮助
社区支持
- 💡 Discussions - 一般问题
- 📋 Issues - Bug 报告和功能请求
- [Discord/Slack] - 实时聊天(如果可用)
代码审查流程
- 所有 PR 需要至少一次审查
- 维护者将在 48 小时内审查
- 及时处理反馈
- 合并前压缩提交
📋 贡献清单
提交 PR 前,确保:
- 代码遵循项目风格指南
- 所有测试通过
- 如需要已更新文档
- 提交消息具有描述性
- PR 描述解释了更改
- 代码中没有敏感信息
- 功能在生产环境中正常工作
感谢你为 AI Proxy Worker 做出贡献! 🎉
你的贡献让这个项目对每个人都更好。