2.5 KiB
2.5 KiB
MVP v3.8 进展记录
2026-01-06
- 完成 v3.8 设计文档:
specs/mvp/v3.8/v3.8_design.md - 完成 v3.8 Serving API reference:
specs/mvp/v3.8/v3.8_api.md - 完成 v3.8 TDD 开发计划:
specs/mvp/v3.8/v3.8_dev_plan.md - 完成 M0:
configs/dev.yaml增加serving配置(http_port=8000, proxy_location=HeadOnly, accelerator_type=H20) - 完成 M1:ServingSpec 解析/宏替换/路径校验 + 单测(
src/mvp/py/argus/service/serving_spec.py) - 完成 M2:SQLite 新增
serve_models/serve_events+ Db API + 单测(src/mvp/py/argus/service/db.py) - 完成 M3:FastAPI Serving 管理 API + 单测(
src/mvp/py/argus/service/app.py) - 完成 M4:ServeClient 抽象 + LLMConfig builder(dict 形态)+ 单测(
src/mvp/py/argus/service/serve_client.py、src/mvp/py/argus/service/serve_llm_config.py) - 完成 M5:Serving reconciler(状态机 + 资源预检查 + mock 单测)(
src/mvp/py/argus/service/serving_reconciler.py)
M6(h1 真实集成)
argus-ray-node镜像补齐依赖:ray[serve,llm]+gymnasium+dm-tree(避免ray.serve.llm导入失败)- 修复 Ray 2.49.2 兼容性问题:
LLMConfig不支持placement_group_config,改为使用resources_per_bundle(src/mvp/py/argus/service/serve_llm_config.py)
- 远端 E2E:
scripts/run_all_v38_serving.sh可跑通:create → RUNNING →/v1/models→chat/completions→ delete → DELETED- 修复脚本中
/v1/models解析的 bash heredoc 引号错误(src/mvp/scripts/run_all_v38_serving.sh)
M7(WebUI - Serving)
- WebUI 增加 Serving 页面:
- 列表:
/ui/serving - 创建:
/ui/serving/new - 详情/事件/缩放/删除:
/ui/serving/{model_key}
- 列表:
- 单测覆盖:
src/mvp/py/tests/test_ui_serving.py
M8(文档/验收)
src/mvp/README.md补充 v3.8 serving 端口与 E2E 脚本说明
环境探测(h1 / head 容器)
目的:确认 Ray Serve LLM 依赖是否开箱即用,避免后续集成阶段才暴雷。
ray:可用,版本2.49.2ray.serve:可 import(Serve 基础可用)ray.serve.llm:当前不可 import- 报错:
ModuleNotFoundError: No module named 'gymnasium' - 原因:
ray.serve.llm的导入链路会触发ray.rllib,而 rllib 依赖gymnasium
- 报错:
结论:
- v3.8 在实现阶段需要在
argus-ray-node镜像中补齐ray[llm](推荐)或至少补齐gymnasium等必要依赖,确保from ray.serve.llm import ...可用。