贡献指南(中文)
May 4, 2026 · View on GitHub
感谢你参与 Free-Way。
本项目目标是提供一个稳定、可维护、可扩展的免费 LLM 网关。请在提交前阅读以下约定,以减少 review 往返并保持质量一致。
English version: CONTRIBUTING.md
1. 如何贡献
你可以通过以下方式参与:
- 提交 Bug 报告(复现步骤 + 期望行为 + 实际行为)
- 提交修复 PR
- 新增/改进 Provider 适配
- 改进模型同步、缓存、健康检测能力
- 完善文档(README、中文文档、示例)
2. 本地开发
环境要求
- Node.js 18+
- npm
启动流程
npm install
npm run build
npm start
默认服务地址:http://localhost:8787
3. 分支与提交建议
- 从最新主分支拉取新分支进行开发
- 一个 PR 聚焦一个主题(例如:一个 bugfix、一个 provider、一次文档改进)
- 提交信息建议清晰表达意图,例如:
feat(provider): add xxx provider adapterfix(router): handle xxx response parsingdocs: update setup instructions
4. PR 提交检查清单
提交 PR 前请确认:
-
npm run build通过 - 本地启动正常,核心接口可访问
- 未提交任何真实 API Key、Token、敏感配置
- 代码改动与文档说明保持一致
- 变更范围最小化,不包含无关重构
5. Provider 相关改动规范
如果你在新增或改造 Provider,请至少完成以下内容:
- 在
src/providers/index.ts增加或调整 Provider 定义 - 确认
apiKeyEnvVar、baseURL、模型映射 (id/providerModelId) 正确 - 如该 Provider 有特殊鉴权/接口协议,放在对应 provider adapter 中处理
- 需要动态同步时,在
src/models/*-sync.ts实现拉取/缓存策略 - 确认模型在控制台和
/v1/models中可见、可调用
6. 接口兼容性要求
请不要破坏以下兼容面:
- OpenAI 风格:
/v1/chat/completions、/v1/models - Anthropic 风格:
/v1/messages - 控制台 API:
/api/catalog、/api/health/*、/api/models/refresh、/api/config/keys
如存在不兼容变更,请在 PR 描述中明确说明迁移方式。
7. 文档要求
当改动影响使用方式时,请同步更新:
README.md(英文)README.zh-CN.md(中文)CONTRIBUTING.md(英文贡献指南)contribution.md(中文贡献指南)
8. 安全与密钥
- 严禁提交真实密钥到仓库
- 不在 issue/PR 评论中粘贴完整凭证
- 遇到潜在安全问题时,先提供最小复现与影响面说明,避免公开泄漏敏感信息
9. Review 标准
Review 时会重点关注:
- 正确性(接口语义、错误处理、边界行为)
- 可维护性(结构清晰、命名明确、避免过度抽象)
- 向后兼容性(现有调用方不被破坏)
- 文档一致性(行为与文档匹配)
再次感谢你的贡献。高质量、小步可验证的 PR 会更快通过。