build(asr): add qualified vLLM 0.23 image - #32
Conversation
Reviewer's GuideThis PR replaces the previous external ASR image setup with a reproducible, digest- and source-pinned Spark-vLLM 0.23.0 ARM64 base plus a minimal ASR derivative, tightens deployment/runtime guards to keep the ASR stack immutable except for locked audio decoders, and adds historical design/plan docs for the qualification runs, all while preserving the production Qwen3-ASR-1.7B contract and updating tests and docs accordingly. Sequence diagram for updated ASR container healthcheck and model verificationsequenceDiagram
participant Docker as DockerEngine
participant ASR as qwen3_asr_container
participant HC as HealthcheckPython
participant API as vllm_http_server
Docker->>ASR: run healthcheck CMD
ASR->>HC: start python3 -c ...
HC->>API: GET /v1/models
API-->>HC: 200 JSON { data: [ { id: qwen3-asr } ] }
HC->>Docker: exit 0 if any(model.id == qwen3-asr)
Note over HC,ASR: healthcheck fails closed unless qwen3_asr model is loaded
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
This reverts commit 839cef2.
There was a problem hiding this comment.
Hey - I've found 1 issue, and left some high level feedback:
- The ASR Dockerfile’s long inline
python3 -cassertion chain is quite dense; consider moving these version and adapter checks into a small checked-in Python module to improve readability and make future adjustments easier. - The deployment contract tests in
tests/test_dgx_deployment.pynow contain a lot of helper logic (regexes, Dockerfile parsing, bash script inspection); you may want to factor some of this into a dedicated utility/module to keep the test file focused and easier to maintain.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The ASR Dockerfile’s long inline `python3 -c` assertion chain is quite dense; consider moving these version and adapter checks into a small checked-in Python module to improve readability and make future adjustments easier.
- The deployment contract tests in `tests/test_dgx_deployment.py` now contain a lot of helper logic (regexes, Dockerfile parsing, bash script inspection); you may want to factor some of this into a dedicated utility/module to keep the test file focused and easier to maintain.
## Individual Comments
### Comment 1
<location path="dgx/asr/build-midpoint-base.sh" line_range="110" />
<code_context>
+ "build_script_commit: b51af15a280d28c2ad9096b3ef581524eddbd0e7",
+ "vllm_commit: 0fc695fc6d1d82e9a5ac6835ac8e4e1c83703665",
+ "flashinfer_commit: d768c14e7cf5dd5df45a8a1de78ae815879f108a",
+ "base_image: ${CUDA_IMAGE}",
+)
+
</code_context>
<issue_to_address>
**issue (bug_risk):** The `base_image` metadata check uses an undefined `CUDA_IMAGE` shell variable, which will never match the actual build metadata.
In `assert_historical_inventory`, `expected_metadata` includes `"base_image: ${CUDA_IMAGE}"`, but `CUDA_IMAGE` is never defined. This means the check searches for the literal `${CUDA_IMAGE}` in `/workspace/build-metadata.yaml` and will always fail, even when the base image is correct. Please either define `CUDA_IMAGE` to match the intended CUDA base tag or replace the placeholder with the actual expected `base_image` value so the assertion is valid.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| "build_script_commit: b51af15a280d28c2ad9096b3ef581524eddbd0e7", | ||
| "vllm_commit: 0fc695fc6d1d82e9a5ac6835ac8e4e1c83703665", | ||
| "flashinfer_commit: d768c14e7cf5dd5df45a8a1de78ae815879f108a", | ||
| "base_image: ${CUDA_IMAGE}", |
There was a problem hiding this comment.
issue (bug_risk): The base_image metadata check uses an undefined CUDA_IMAGE shell variable, which will never match the actual build metadata.
In assert_historical_inventory, expected_metadata includes "base_image: ${CUDA_IMAGE}", but CUDA_IMAGE is never defined. This means the check searches for the literal ${CUDA_IMAGE} in /workspace/build-metadata.yaml and will always fail, even when the base image is correct. Please either define CUDA_IMAGE to match the intended CUDA base tag or replace the placeholder with the actual expected base_image value so the assertion is valid.
Zusammenfassung
Verifikation
pytest -q: 373 passedruff check agent/ tests/ruff format --check agent/ tests/docker compose config --quietLive-A/B auf der GX10
sha256:0fadf01c8957a91ad83aca03395e7cd61fb66c1b20f5049e268ddd5424560930eligible=trueDas Produktionssystem blieb während Build und Tests unverändert und gesund. Dieser PR führt keinen Rollout durch; dafür ist weiterhin eine separate Freigabe erforderlich.
Hinweis: Der qualifizierte Kandidat enthält den getesteten Source-Build von FlashInfer 0.6.12. Das inzwischen veröffentlichte vorcompilierte 0.6.18-Wheel wurde bewusst nicht nachträglich substituiert, weil dies einen neuen Kandidaten erzeugen würde.
Summary by Sourcery
Qualify and document a new digest-pinned Spark-vLLM midpoint ASR image using the production Urocyon Qwen3-ASR-1.7B model, while keeping deployment contracts stable and deferring rollout.
New Features:
Bug Fixes:
Enhancements:
Documentation:
Tests: