This repo intends to host community maintained common recipes to run vLLM answering the question: How do I run model X on hardware Y for task Z?
Each recipe is a structured YAML file at models/<hf_org>/<hf_repo>.yaml, kept in the repository of the project that knows the model best. This repository is the renderer: it pulls those files in, merges them, and builds recipes.vllm.ai and its JSON API.
flowchart LR
vllm["vllm-project/vllm<br/>recipes/models/"] --> sync
omni["vllm-project/vllm-omni<br/>recipes/models/"] --> sync
ascend["vllm-ascend<br/>overlays/"] -.-> sync
self["this repo<br/>taxonomy · strategies · kv_store"] --> assemble
sync["sync-sources.mjs<br/>pinned by sources.lock.json"] --> assemble["assemble-content.mjs<br/>→ .content/<channel>/"]
assemble --> build["build-recipes-api.mjs + next build"] --> site["recipes.vllm.ai<br/>+ JSON API"]
| Content | Where it lives | Status |
|---|---|---|
| Model recipes served by vLLM | vllm-project/vllm → recipes/models/ |
Owned by vLLM; a merge there reaches recipes.vllm.ai in about 30 minutes. Copies stay in this repo's models/ until they are synced to vLLM and removed; they aren't rendered |
| Omni recipes (image, video, audio generation) | vllm-project/vllm-omni → recipes/models/ |
Owned by vLLM-Omni, reaching recipes.vllm.ai the same way. Copies stay in this repo's models/ until they are removed; they aren't rendered |
| Ascend NPU content | Inline in the vLLM recipes | Moving to overlays/ in vllm-ascend |
| Schema, hardware profiles, serving strategies, KV-store deployments, platforms | This repo (taxonomy.yaml, strategies/, kv_store/, platforms.yaml) |
Owned here |
| Command synthesis, site, JSON API | This repo (src/, scripts/) |
Owned here |
How the pieces fit:
sources.yaml lists every source repository for a channel (today only latest). For each source it gives the repo, ref, and directory, a role, and the scope this repo grants it:sources.lock.json pins every remote source to a commit, so each build is reproducible.bump-sources.yml runs every 20 minutes:
1. Checks whether a source's recipe directory changed.
2. Validates the new content with the full JSON API build.
3. Commits the lock, which redeploys the site.If validation fails, the lock stays on the last good commit, so the site keeps serving the previous content, and a sources-bump-failed issue is opened. There is one issue per failure, not one per run, and it closes itself on the next successful run.
- Provenance. Every recipe page links "Edit recipe" to the repository that owns the file. Every recipe JSON carries a source field (repo, commit, path) for tracing a command back to its YAML.
Edit or add a recipe in the repository that owns it (see the table above), following CONTRIBUTING.md for the full schema, VRAM formula, and validation steps. Changes to the schema, hardware profiles, strategies, or the site go to this repository.
To preview a recipe change from a local checkout of a source repository, create a gitignored sources.local.yaml in this repo:
overrides:
vllm: ~/vllm/recipes
vllm-omni: ~/vllm-omni/recipes
Quick loop:
pnpm install
pnpm dev # http://localhost:3000
node scripts/sync-sources.mjs # fetch the source commits pinned in sources.lock.json
node scripts/build-recipes-api.mjs # assembles sources, validates every YAML, rebuilds the JSON API
node scripts/validate-source.mjs --source vllm --dir ~/vllm/recipes # validate a source checkout (what its CI runs)
pnpm content:watch # re-assemble when files are added to or removed from a local source
The top-level Markdown directories (DeepSeek/, Qwen/, etc.) are the historical MkDocs site, kept as a reference during the YAML migration. To preview them:
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
uv run mkdocs serve --dev-addr 127.0.0.1:8001
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|