Revert "docs: add user guide information architecture RFC"

This reverts commit 4aa71a04a3.

Signed-off-by: Hongsheng Liu <liuhongsheng4@huawei.com>
This commit is contained in:
Hongsheng Liu committed 2026-08-08 22:08:42 +08:00
1 parent 4aa71a04a3
commit b520064a54
1 file changed
-414
@@ -1,414 +0,0 @@
---
title: User Guide Information Architecture and Content Refactor
kind: rfc
status: proposed
owners:
- vLLM-Omni documentation maintainers
last_reviewed: 2026-08-08
---
# User Guide Information Architecture and Content Refactor
**Status:** Proposed
**Decision requested:** Approve the target information architecture and the
staged migration plan in this RFC.
## Summary
The vLLM-Omni User Guide has broad coverage, but its navigation is currently
organized partly around repository directories and build-generated categories
rather than around user tasks. As a result, onboarding, serving, examples,
deployment configuration, optimization, integrations, and operations are mixed
at the same level. The same concept can also appear under different labels;
for example, the published site currently shows both `Examples →
Quantization` and `Features → Quantization`.
This RFC proposes a task-oriented User Guide with a small number of stable
sections, a single model-and-recipe entry point, and explicit separation
between conceptual guides, runnable recipes, reference material, and
troubleshooting. The first migration should preserve existing page URLs and
focus on navigation and cross-links.
## Motivation and current status
Before this RFC's proposed changes, the source navigation was defined in
[`docs/.nav.yml`](../.nav.yml) and its User Guide contained:
```text
Getting Started
Serving
Examples
General
Configuration
Models
Features
Fault Tolerance
```
This is a reasonable inventory, but the boundaries are inconsistent:
- `General` contains FAQ and metrics, while fault tolerance is a separate
top-level section. These are all operational concerns.
- `Features` is a catch-all for Sleep Mode, Diffusion Features, Quantization,
and ComfyUI, even though those pages represent different kinds of content.
- `Configuration` mixes deployment topology, memory sizing, parallel
strategies, and a general landing page.
- The examples generator scans every top-level directory under `examples/` and
rewrites the Examples section at build time
([`generate_examples.py`](../mkdocs/hooks/generate_examples.py)). The
`examples/quantization/` directory therefore becomes a second Quantization
entry in the published sidebar.
- `Supported Models` is a large compatibility table, but it only links to the
recipes directory in general. It does not connect each model row to a
runnable, hardware-specific recipe.
- The supported-model table has 76 rows, while the repository contains 50
recipe files. Recipe availability is therefore useful information in its
own right and must not be implied by model support.
- [`Session State Manager`](../features/session_state_manager.md) exists as a
user-facing document, but its primary placement should be clearly marked as
experimental rather than presented as a general feature.
- [`Pipeline Parallelism`](../user_guide/diffusion/parallelism/pipeline_parallel.md)
exists as a user-facing document, but its primary User Guide placement is
deferred until its support and maintenance status are settled.
- [`mot_config.md`](../user_guide/diffusion/mot_config.md) is an internal
tuning-reference document and should not be promoted to the main User Guide
unless its audience and maintenance model change.
The published [vLLM Recipes](https://recipes.vllm.ai/) site already provides
the right model-oriented experience: users choose a model and receive
hardware-specific commands and deployment guidance. The vLLM-Omni model index
should connect to that experience instead of leaving users to search for a
recipe separately.
## Goals
1. Organize the User Guide around the questions users ask: how do I install,
run, serve, configure, optimize, integrate, and operate vLLM-Omni?
2. Give every supported model a clear recipe status and, when available, a
direct recipe link.
3. Keep the global sidebar short and stable without creating one navigation
entry per model.
4. Preserve existing page URLs during the first migration.
5. Make generated examples fit an explicit conceptual category rather than
deriving category names directly from source-directory names.
6. Distinguish user-facing guidance from developer design documents and
internal tuning references.
## Non-goals
- Changing the vLLM-Omni API, CLI, or runtime behavior.
- Rewriting every page in the first change.
- Making a recipe claim that has not been validated on a concrete hardware
configuration.
- Removing existing examples or recipes because they are not yet represented
in the model index.
- Redesigning the MkDocs theme or responsive CSS.
## Proposed User Guide structure
The target structure is:
```text
User Guide
├── Start Here
│ ├── Installation
│ │ ├── GPU
│ │ └── NPU
│ └── Quickstart
├── Models and Recipes
│ └── Supported Models
├── Serving
│ ├── OpenAI-Compatible API
│ │ ├── Chat Completions
│ │ ├── Image Generation
│ │ ├── Image Editing
│ │ ├── Text-to-Speech
│ │ ├── Audio Generation
│ │ └── Video Generation
│ └── Realtime and Interactive Streaming
│ ├── Realtime API
│ ├── Full-Duplex API (experimental)
│ ├── Streaming Video Input
│ └── Streaming Text-to-Speech
├── Examples
│ ├── Offline Inference
│ └── Online Serving
├── Features
│ ├── Runtime and Stage Execution
│ │ ├── Execution Modes and Streaming
│ │ └── Sleep Mode
│ ├── Diffusion Acceleration
│ │ ├── Overview and Compatibility
│ │ ├── Quantization
│ │ ├── CPU Offloading
│ │ ├── Cache Acceleration
│ │ ├── Parallelism
│ │ │ ├── Parallelism Overview
│ │ │ └── VAE Parallelism
│ │ ├── Attention Backends
│ │ ├── Regional Compilation
│ │ ├── Frame Interpolation
│ │ ├── Startup and Loading
│ │ │ └── Multi-Thread Weight Loading
│ │ └── LoRA
│ └── Experimental
│ └── Session State Manager
├── Deployment and Configuration
│ ├── Pipeline and Deploy Configurations
│ └── GPU Memory
├── Integrations
│ └── ComfyUI
└── Operations and Troubleshooting
├── FAQ
├── Production Metrics
└── Fault Tolerance
```
This is a conceptual navigation tree, not a required filesystem move. Existing
URLs should remain valid; the first implementation can move pages in the
sidebar without moving files.
### Why this structure
- **Start Here** gives new users one obvious entry point and makes Installation
visible instead of exposing only the hardware children.
- **Models and Recipes** puts model choice before model-specific execution.
- **Serving** is the API reference organized by input/output modality.
- **Realtime and Interactive Streaming** gives long-lived WebSocket and
full-duplex sessions a first-class home instead of hiding them in model
examples. The current implementation has several model-specific contracts,
so this section should document the common protocol first and link to each
model recipe for capability-specific behavior.
- **Examples** contains runnable workflows, not conceptual feature guides.
- **Deployment and Configuration** contains the basic deployment settings and
resource sizing needed to run a model.
- **Integrations** separates external tools from core runtime features.
- **Operations and Troubleshooting** groups metrics, failure modes, and FAQ
content around operating a deployment.
### Alignment with Developer Guide feature design
The User Guide uses the same primary feature-design group names already used by
the Developer Guide: `Runtime and Stage Execution` and `Diffusion Acceleration`.
This keeps contributor architecture and user operation guides discoverable by
the same concept without exposing implementation pages in the user sidebar.
`Communication` remains Developer Guide-only because the current connector
pages describe implementation contracts rather than user operations. The User
Guide may add a Communication subsection later if a stable deployment or
connector usage guide is created.
The User Guide explains configuration, supported usage, API operations, and
practical limitations. The existing Developer Guide feature-design pages remain
unchanged and continue to explain runtime architecture, implementation
boundaries, and contributor contracts. Quantization links to the existing
[`design/feature/quantization.md`](feature/quantization.md) design document;
this RFC does not add or move Developer Guide pages for Sleep Mode.
### Deferred from the primary User Guide
This RFC intentionally removes the following topics from the primary User Guide
navigation. The source pages and public URLs are retained; this is a scope and
discoverability decision, not a deletion proposal:
- Composable Parallel Strategies.
- Prefill-Decode (PD) Disaggregation.
- Diffusion Pipeline Parallelism until its user-facing support and placement
are settled.
- Internal tuning references such as `mot_config.md`.
These topics can remain reachable from existing direct links, recipes, design
documents, or later dedicated documentation proposals. They should not be
placed under a generic `Features and Optimization` bucket in this RFC. The
supported user-facing guides are grouped by task instead.
## Model and recipe index
`Supported Models` should remain one searchable reference page rather than
becoming a long list of model pages in the sidebar. Each model row should
provide:
| Field | Purpose |
| --- | --- |
| Model family | Stable user-facing model name |
| Capabilities | Text, image, video, audio, action, or combinations |
| Example checkpoints | Hugging Face identifiers |
| Supported hardware | Backend compatibility currently claimed by vLLM-Omni |
| Recipe | Direct link to a validated deployment recipe, possibly several links by hardware/profile |
| Examples | Links to matching offline and/or online examples |
Recipe links should use this precedence:
1. The published [vLLM Recipes](https://recipes.vllm.ai/) page when the model
has a published recipe.
2. The corresponding file under the repository's
[`recipes/`](https://github.com/vllm-project/vllm-omni/tree/main/recipes)
directory when it is not yet published.
3. `No validated recipe yet` when neither exists.
The index must not equate implementation support with recipe coverage. For
models with multiple profiles, such as different GPU sizes, NPU, or MUSA
deployments, the Recipe cell should expose each tested profile rather than
silently choosing one. For model families with several variants, one row may
link to a family landing page containing multiple recipes.
To prevent the table and recipe catalog from drifting, the recipe mapping
should eventually be represented as structured metadata keyed by canonical
model ID. A generated table is preferred to maintaining a growing set of
hand-written links. The existing [recipe catalog](https://github.com/vllm-project/vllm-omni/tree/main/recipes)
and `supported_models.md` remain the human-readable sources during migration.
## Serving surface inventory
The current repository already exposes more than the HTTP endpoints listed in
the original sidebar:
| Surface | Current evidence | Documentation direction |
| --- | --- | --- |
| OpenAI-compatible HTTP APIs | Chat, image, audio, speech, and video pages under `docs/serving/` | Keep as the stable API reference group |
| Realtime WebSocket | Qwen3-Omni `/v1/realtime`, plus model-specific clients and recipes | Add a canonical Realtime API guide and link model recipes |
| Full-duplex WebSocket | MiniCPM-o `/v1/realtime?duplex=1`, PersonaPlex `/api/chat` and `/v1/audio/duplex`, and the unified duplex control plane | Add an experimental Full-Duplex API guide; document protocol differences explicitly |
| Streaming video input | `serving/video_stream_api.md` and the Qwen3-Omni client | Keep as a serving guide under Realtime and Interactive Streaming |
| Streaming text-to-speech | `/v1/audio/speech/stream` WebSocket and PCM/SSE modes in `serving/speech_api.md` | Keep the contract in the speech API page and link it from the Realtime landing page |
| Model-specific interactive endpoints | Cosmos3/OpenPI and JoyVL interaction recipes | Keep endpoint details in the model recipe; link from the model index rather than adding one global sidebar item per model |
Realtime and full-duplex are related but should not be collapsed into one
generic promise. Realtime can mean incremental input or output over a
long-lived connection, while full-duplex means the server consumes and produces
streams concurrently, often with model-specific turn, barge-in, audio framing,
and session-state semantics.
## Content placement rules
Every new page should have one primary home determined by its user intent:
| Content type | Primary location | Example |
| --- | --- | --- |
| Installation or first successful run | Start Here | GPU installation, Quickstart |
| API or CLI contract | Serving or Reference | Chat Completions, Video API |
| Runnable model/hardware procedure | Examples or Models and Recipes | Qwen3-Omni recipe |
| Deployment topology or resource sizing | Deployment and Configuration | Deploy configuration, GPU memory |
| User-facing feature configuration or operation | User Guide → Features | Quantization, Sleep Mode |
| Feature architecture or contributor contract | Developer Guide → Feature Design | Existing quantization and diffusion acceleration design pages |
| Developer extension workflow | Developer Guide | Custom Pipeline Extension |
| Advanced runtime capability or optimization | Deferred from primary navigation | Composable Parallel Strategies, PD Disaggregation, internal tuning references |
| External product integration | Integrations | ComfyUI |
| Diagnosis, monitoring, or incident behavior | Operations and Troubleshooting | FAQ, metrics, failure modes |
| Internal architecture or extension contract | Developer Guide | Design documents |
Avoid using directory names as user-facing categories. In particular,
generated categories must have an explicit display-name mapping; a source
directory named `quantization` should not automatically create a sidebar item
with the same label as the user-facing Quantization guide.
## Navigation and generation changes
The first implementation should make `docs/.nav.yml` the conceptual source of
truth:
1. Keep the example-generation hook responsible for generating example pages.
2. Stop rewriting the tracked conceptual navigation from arbitrary top-level
example directories, or replace that behavior with explicit category globs
for `Offline Inference` and `Online Serving` only. Quantization scripts
should not create a primary User Guide category.
3. Add explicit display names for generated categories where globs are not
sufficient.
4. Keep the User Guide Features section grouped using the existing Developer
Guide feature-design names, while limiting its pages to practical usage
guides; expose implementation architecture under Developer Guide → Feature
Design.
5. Keep internal tuning references out of the main User Guide.
6. Use redirects only when a later content migration changes a public URL.
The Serving section should add Realtime and Interactive Streaming as a separate
conceptual group. It should cover Realtime, Full-Duplex, streaming video input,
and streaming text-to-speech without duplicating every model-specific recipe in
the global sidebar.
The primary navigation should not expose generated categories that duplicate
or compete with a canonical guide. In particular, `Quantization Tools` should
not be introduced as a substitute for the Developer Guide feature design and
the model-specific recipe/configuration links.
## Migration plan
### Phase 1: Navigation-only cleanup
- Introduce the target section names in `docs/.nav.yml`.
- Keep existing Markdown paths and URLs.
- Remove the generated Quantization category from the primary Examples nav.
- Add a focused User Guide Features section using the existing Runtime and
Stage Execution and Diffusion Acceleration group names. Put practical memory,
execution, acceleration, loading, and adaptation guides under those groups;
keep method-specific quantization pages and detailed acceleration pages
grouped under their landing topics rather than flattening the global sidebar.
- Leave the existing Developer Guide structure and feature-design pages
unchanged; align only the User Guide labels and grouping.
- Move FAQ, metrics, and fault tolerance under Operations and Troubleshooting.
- Put ComfyUI under Integrations.
- Keep Composable Parallel Strategies and PD Disaggregation out of the
primary Configuration nav.
- Do not create a flat `Features and Optimization` section; use the grouped
Feature subsections defined above.
### Phase 2: Model and recipe linking
- Add recipe and example columns to `supported_models.md`.
- Establish canonical model IDs and recipe-profile metadata.
- Link to published recipes first and repository recipes second.
- Mark supported models without validated recipes explicitly.
### Phase 3: Landing pages and cross-links
- Add short landing pages for Models and Recipes, Deployment and Configuration,
Operations and Troubleshooting, and Realtime and Interactive Streaming where
the existing pages are not sufficient.
- Add consistent `Next steps` links from Quickstart to a model recipe, serving
API, and configuration guide.
- Add reciprocal links from recipes back to the supported-model row and the
relevant API/feature guides.
### Phase 4: Validation and maintenance
- Build with `mkdocs build --strict`.
- Check that the build does not leave a modified tracked navigation file.
- Run a link checker over local and external recipe links.
- Inspect the User Guide at desktop and narrow viewport widths.
- Review recipe status whenever a model-support row changes.
## Acceptance criteria
- The User Guide has no more than eight focused top-level sections and no flat
Features and Optimization bucket.
- Every top-level section answers a distinct user task.
- `Quantization Tools` does not appear as a primary User Guide section.
- Quantization and Sleep Mode each have a concise user-facing entry under User
Guide → Features, while existing Developer Guide feature-design pages remain
unchanged.
- Every supported-model row has either a direct recipe link, a recipe-family
link, or an explicit no-recipe status.
- Realtime and Full-Duplex have a canonical serving entry, with model-specific
protocol and capability differences linked to the relevant recipes.
- Deferred topics remain available through existing direct URLs or contextual
links; no source page is deleted as part of this RFC.
- Existing public documentation URLs continue to resolve, or have redirects.
- A clean documentation build does not rewrite the tracked conceptual nav.
- The navigation remains usable on narrow screens without requiring users to
scan the complete model catalog.
## Open decisions
The recommended decisions are:
1. Use the target structure above as the User Guide baseline.
2. Keep one Supported Models page and add direct recipe links to its rows.
3. Prefer published recipes, with repository recipes as fallback links.
4. Treat recipe availability as a separate status from backend support.
5. Perform a navigation-only migration before moving or rewriting content.
6. Use the existing Developer Guide feature-design names for the User Guide
Features hierarchy, keep contributor architecture unchanged, and keep
explicitly deferred topology/internal tuning topics out of the primary
navigation.
7. Add Realtime and Full-Duplex as a serving subsection, with one shared
protocol overview and model-specific recipe links.