mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-05 08:55:28 +08:00
91 lines
2.2 KiB
Markdown
91 lines
2.2 KiB
Markdown
# 贡献指南
|
||
|
||
感谢你对 DS2API 的贡献!
|
||
|
||
## 开发环境设置
|
||
|
||
### 后端
|
||
|
||
```bash
|
||
# 1. 克隆仓库
|
||
git clone https://github.com/CJackHwang/ds2api.git
|
||
cd ds2api
|
||
|
||
# 2. 创建虚拟环境(推荐)
|
||
python -m venv venv
|
||
source venv/bin/activate # Windows: venv\Scripts\activate
|
||
|
||
# 3. 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 4. 配置
|
||
cp config.example.json config.json
|
||
# 编辑 config.json
|
||
|
||
# 5. 启动
|
||
python dev.py
|
||
```
|
||
|
||
### 前端 (WebUI)
|
||
|
||
```bash
|
||
cd webui
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
## 代码规范
|
||
|
||
- **Python**: 遵循 PEP 8,使用 4 空格缩进
|
||
- **JavaScript/React**: 使用 4 空格缩进,使用函数组件
|
||
- **提交信息**: 使用语义化提交格式(如 `feat:`, `fix:`, `docs:`)
|
||
|
||
## 提交 PR
|
||
|
||
1. Fork 本仓库
|
||
2. 创建功能分支 (`git checkout -b feature/xxx`)
|
||
3. 提交更改 (`git commit -m 'feat: 添加xxx功能'`)
|
||
4. 推送分支 (`git push origin feature/xxx`)
|
||
5. 创建 Pull Request
|
||
|
||
## WebUI 构建
|
||
|
||
> **重要**: 修改 `webui/` 目录后 **无需手动构建**!
|
||
|
||
当 PR 合并到 `main` 分支后,GitHub Actions 会自动:
|
||
1. 构建 WebUI
|
||
2. 提交构建产物到 `static/admin/`
|
||
|
||
如果需要本地构建(测试用):
|
||
```bash
|
||
./scripts/build-webui.sh
|
||
```
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
ds2api/
|
||
├── app.py # FastAPI 应用入口
|
||
├── dev.py # 开发服务器
|
||
├── core/ # 核心模块
|
||
│ ├── auth.py # 账号认证与轮询
|
||
│ ├── config.py # 配置管理
|
||
│ ├── deepseek.py # DeepSeek API 调用
|
||
│ ├── models.py # 模型定义
|
||
│ ├── pow.py # PoW 计算
|
||
│ └── sse_parser.py # SSE 解析
|
||
├── routes/ # API 路由
|
||
│ ├── openai.py # OpenAI 兼容接口
|
||
│ ├── claude.py # Claude 兼容接口
|
||
│ ├── home.py # 首页路由
|
||
│ └── admin/ # 管理接口
|
||
├── webui/ # React WebUI 源码
|
||
├── static/admin/ # WebUI 构建产物(自动生成)
|
||
└── scripts/ # 辅助脚本
|
||
```
|
||
|
||
## 问题反馈
|
||
|
||
- 使用 [GitHub Issues](https://github.com/CJackHwang/ds2api/issues) 报告问题
|
||
- 提供详细的复现步骤和日志信息
|