跳到主要内容

为 vLLM Semantic Router 贡献 🤝

我们欢迎社区贡献!以下是你可以帮助改进 vLLM Semantic Router 的方式。

🎯贡献方式

🐛 错误报告

发现了错误?请在我们的 GitHub Issues.

  • 使用清晰且描述性的标题
  • 提供重现步骤
  • 包含系统信息
  • 添加相关日志或错误消息

✨ 功能请求

有新功能的想法?我们很乐意听听!

  • 先检查现有问题
  • 描述你要解决的问题
  • 解释你建议的解决方案
  • 考虑实现复杂度

📝 文档

帮助改进我们的文档和示例。

  • 修复错别字和语法
  • 添加缺失的文档
  • 创建教程和指南
  • 改进代码示例

💻 代码贡献

为核心功能做出贡献。

  • 修复错误和问题
  • 实现新功能
  • 优化性能
  • 添加测试覆盖率

📋贡献流程

1

创建 Issue

首先与社区讨论你的想法或错误报告。

2

Fork & 分支

从 main 分支为你的更改创建一个新分支。

3

进行更改

按照我们的编码标准实施你的更改。

4

测试

运行测试并确保你的更改不会破坏现有功能。

1. 运行预提交钩子,确保符合项目提交准则;

2. 你可以参考 本地安装 以在本地启动 semantic-router。

5

提交 PR

创建一个包含清晰描述的拉取请求。

⚙️预提交钩子

Semantic-router 项目提供了一个预提交钩子来规范整个项目,包括 Go、Python、Rust、Markdown 和拼写错误检查。

虽然这些措施可能会增加贡献的难度,但它们是必要的。我们目前正在构建一个便携式的 Docker 预提交环境,以降低贡献难度,让你专注于功能性 PR。

手动

一些提示:

1. 如果预提交检查失败,别担心。你也可以通过执行 'make help' 获取更多信息。

2. 对于 pip 安装工具,我们建议你使用 venv 进行安装。

3. 我们建议通过 Python 虚拟环境安装 pre-commit。

4. 你也可以直接提交 PR 让 GitHub CI 为你测试,但这会花费很多时间!

1

安装 precommit

运行pip install --user pre-commit

2

安装检查工具

1. Markdown:npm install -g markdownlint-cli

2. Yaml:pip install --user yamllint

3. CodeSpell:pip install --user codespell

4. JavaScript:cd website && npm lint

5. Shell:以 Mac 为例,执行brew install shellcheck

3

安装 precommit 到 git

运行pre-commit install,然后 pre-commit 安装在 .git/hooks/pre-commit

4

运行

运行make precommit-check 来检查。


Docker/Podman

从上面的本地运行方法可以看出,过程非常麻烦和复杂。因此,我们提供了基于 Docker 或 Podman 的运行方法。无需安装各种依赖软件;你只需要一个容器运行时。

一些提示:

虽然 Docker 可以帮助避免在本地安装过多的检测工具,但这并不意味着它会在提交过程中自动执行。因此,提交时,你可以使用git commit -s -m -n 来跳过检测。

1

确保 Docker/Podman 已安装

docker --version

2

通过 Docker/Podman 运行 precommit

make precommit-local

你也可以手动进入容器并执行操作:

手动 Docker 设置
# Set the container image
export PRECOMMIT_CONTAINER=ghcr.io/vllm-project/semantic-router/precommit:latest

# Run the container interactively
docker run --rm -it \
     -v $(pwd):/app \
     -w /app \
     --name precommit-container ${PRECOMMIT_CONTAINER} \
     bash

# Inside the container, run the precommit commands
pre-commit install && pre-commit run --all-files

🏷️工作组领域

考虑加入我们的 工作组 以集中你的贡献:

area/documentarea/environmentarea/corearea/networkingarea/benchmarkarea/toolingarea/user-experience

📞获取帮助

在贡献过程中需要帮助?请联系我们: