跳转至主要内容

为 vLLM Semantic Router 做出贡献 🤝

我们欢迎社区的贡献!以下是您可以如何帮助改进 vLLM Semantic Router 的方法。

🎯贡献方式

🐛 错误报告

发现了 Bug?请在我们的平台报告它 GitHub 问题.

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

✨ 功能建议

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

  • 首先检查现有的 Issue
  • 描述您正在解决的问题
  • 解释您提议的解决方案
  • 考虑实现的复杂度

📝 文档

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

  • 修复拼写错误和语法错误
  • 补充缺失的文档
  • 创建教程和指南
  • 改进代码示例

💻 代码贡献

为核心功能贡献代码。

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

📋贡献流程

1

创建一个 Issue

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

2

Fork 与创建分支

从主分支(main)为您的更改创建一个新分支。

3

进行更改

遵循我们的编码规范来实现您的更改。

4

测试

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

1. 运行 precommit 钩子,确保符合项目提交指南;

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

5

提交 PR

创建一个拉取请求(Pull Request),并对您的更改进行清晰的描述。

⚙️Precommit 钩子

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

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

手动操作

一些建议

1. 如果 precommit 检查失败,请不要担心。您也可以通过执行 "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 可以帮助避免在本地安装过多的检测工具,但这并不意味着它会在 commit 过程中自动执行。因此,在提交时,您可以使用 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

📞获取帮助

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