贡献代码
提交 PR 前的检查清单
以下是提交到 LiteLLM 的任何 PR 的核心要求
- 签署 贡献者许可协议 (CLA)
- 尽可能保持范围隔离 — 您的更改一次应解决 一个特定问题
代理 (后端) PR
- 添加测试 — 至少 1 个测试是硬性要求 (详情)
- 确保您的 PR 通过测试
- 单元测试 —
make test-unit - 格式化 / Linting 测试 —
make lint
- 单元测试 —
UI PR
- 确保 UI 成功构建 —
npm run build - 确保所有 UI 单元测试通过 —
npm run test - 如果您正在添加 新组件 或 新逻辑,请添加相应的测试
贡献者许可协议 (CLA)
在向 LiteLLM 贡献代码之前,您必须签署我们的 贡献者许可协议 (CLA)。这是所有贡献合并到主仓库的法律要求。CLA 有助于保护您和项目,通过明确定义您的贡献条款。
重要提示: 我们强烈建议在开始您的贡献工作 之前 签署 CLA,以避免审查过程中的延误。您可以在 此处 找到并签署 CLA。
代理 (后端)
1. 设置您的本地开发环境
步骤 1:克隆仓库
git clone https://github.com/BerriAI/litellm.git
步骤 2:安装开发依赖项
poetry install --with dev --extras proxy
2. 添加测试
- 将您的测试添加到
tests/test_litellm/目录。 - 该目录 1:1 镜像
litellm/目录,并且 仅 包含模拟测试。 - 不要 将真实的 LLM API 调用添加到此目录。
tests/test_litellm/ 的文件命名约定
测试目录与 litellm/ 具有相同的结构
test_{filename}.py映射到litellm/{filename}.pylitellm/proxy/test_caching_routes.py映射到litellm/proxy/caching_routes.py
3. 运行单元测试
从 litellm 目录的根目录运行以下命令
make test-unit
4. 运行 Linting 测试
从 litellm 目录的根目录运行以下命令
make lint
LiteLLM 使用 mypy 进行类型检查。CI/CD 还运行 black 进行格式化。
5. 提交 PR
- 将您的更改推送到 GitHub 上的您的 fork
- 从您的 fork 打开一个 Pull Request
UI
1. 设置您的本地开发环境
步骤 1:克隆仓库
git clone https://github.com/BerriAI/litellm.git
步骤 2:导航到 UI 控制面板目录
cd ui/litellm-dashboard
步骤 3:安装依赖项
npm install
步骤 4:启动开发服务器
npm run dev
2. 添加测试
如果您正在添加 新组件 或 新逻辑,则必须添加相应的测试。
3. 运行 UI 单元测试
npm run test
4. 构建 UI
在提交您的 PR 之前,请确保 UI 成功构建
npm run build
5. 提交 PR
- 将您的更改推送到 GitHub 上的您的 fork
- 从您的 fork 打开一个 Pull Request
高级
构建 LiteLLM Docker 镜像
如果您想自己构建和运行 LiteLLM Docker 镜像,请遵循以下说明。
步骤 1:克隆仓库
git clone https://github.com/BerriAI/litellm.git
步骤 2:构建 Docker 镜像
使用 Dockerfile.non_root 构建
docker build -f docker/Dockerfile.non_root -t litellm_test_image .
步骤 3:运行 Docker 镜像
确保 config.yaml 位于根目录中。这是您的 LiteLLM 代理配置文件。
docker run \
-v $(pwd)/proxy_config.yaml:/app/config.yaml \
-e DATABASE_URL="postgresql://xxxxxxxx" \
-e LITELLM_MASTER_KEY="sk-1234" \
-p 4000:4000 \
litellm_test_image \
--config /app/config.yaml --detailed_debug
在本地运行 LiteLLM 代理
- 导航到
proxy/目录
cd litellm/litellm/proxy
- 运行代理
python3 proxy_cli.py --config /path/to/config.yaml
# RUNNING on http://0.0.0.0:4000