ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ODS Compose解析器完全指南:resolve-compose-stack如何动态装配AI服务器完整栈

ODS Compose解析器完全指南:resolve-compose-stack如何动态装配AI服务器完整栈 ODS Compose解析器完全指南resolve-compose-stack如何动态装配AI服务器完整栈【免费下载链接】ODSTurn your PC, Mac, or Linux box into an AI server. LLM inference, chat UI, voice, agents, workflows, RAG, and image generation.项目地址: https://gitcode.com/GitHub_Trending/dr/ODSODS 是一个把PC、Mac 或 Linux 主机变成 AI 服务器的开源项目开箱即用地提供 LLM 推理、聊天 UI、语音交互、智能体、工作流、RAG 检索和图片生成等能力。而它背后真正化繁为简的关键是 Docker Compose 解析器 resolve-compose-stack它能根据你的硬件NVIDIA / AMD / Apple Silicon / Intel Arc / 纯 CPU和运行模式本地、云端、外接 LLM自动挑选并叠放正确的 compose 文件动态装配出一整套可运行的 AI 服务栈——你完全不需要手动记忆任何文件组合。为什么 AI 服务器需要 Compose 解析器ODS 的服务栈由十几个 compose 文件分层构成不同硬件和模式对应不同的文件组合场景手动组合方式NVIDIA 显卡base nvidia 覆盖层AMD 显卡base amd 覆盖层Apple Siliconbase apple 覆盖层纯 CPUbase cpu 覆盖层外接柠檬推理引擎base cloud lemonade-external如果让安装脚本、CLI、面板、测试各自硬编码这些组合任何一个新硬件支持都会牵一发动全身。所以 ODS 把所有该用哪些文件的决策集中到一个解析器里其他组件只消费它的输出。完整的设计约定写在 COMPOSE_RESOLVER_CONTRACTS.md 中。五层叠放模型完整栈是怎么拼出来的解析器遵循一个清晰的五层模型由低到高依次叠放基础栈—— docker-compose.base.yml定义公共网络、卷和核心服务llama-server 推理服务、open-webui 聊天界面、dashboard 控制台等硬件覆盖层—— 如 docker-compose.nvidia.yml只改与 GPU 相关的东西推理镜像换成 CUDA 版、声明nvidia-smi设备、调整显存上限模式覆盖层—— 云端模式、外部 Lemonade 推理、外接 LLM 等路由模式扩展片段—— extensions/services/ 下每个启用服务的compose.yaml以及它的 GPU 专用覆盖层compose.nvidia.yaml/compose.amd.yaml操作者覆盖—— 你自己的docker-compose.override.yml个性化定制永远排在最后生效。打个比方基础栈是毛坯房硬件层决定用电还是用油模式层决定住家还是出租扩展片段是各个房间而你的 override 文件是最后的装修主权。解析六步走从硬件检测到文件清单解析器收到参数后按如下流程工作第 1 步接收环境参数。安装器或主机代理会传入--tier硬件档位、--gpu-backend显卡类型、--ods-modelocal/cloud/lemonade、--gpu-count显卡数量等参数一次调用就能还原出目标机器的画像。第 2 步按优先级选择基础组合。优先级从高到低能力档案覆盖层 → 外部 Lemonade → 云端模式 → Apple 芯片 → 纯 CPU → AMD → Intel Arc → 默认 NVIDIA。命中哪一档就锁定对应的 base 覆盖层组合。第 3 步优雅降级。每一层选择都先检查文件是否真实存在若覆盖层缺失自动退回docker-compose.base.yml保证最差也能跑起来。第 4 步多显卡追加。当--gpu-count 1时自动追加docker-compose.multigpu-nvidia.yml等专用覆盖层把多卡调度一次配好。第 5 步扫描扩展。解析器遍历两个目录内置的 extensions/services/ 和用户通过面板安装的data/user-extensions/。每个服务目录靠manifest.yaml声明schema_version: ods.services.v1被识别并按gpu_backends字段过滤——比如 NVIDIA 专用扩展不会出现在 AMD 机器上。扩展的启停也很直观文件存在即启用改名为compose.yaml.disabled即停用。第 6 步输出结果。最终产出一串docker compose的-f文件参数例如bash ods/scripts/resolve-compose-stack.sh --tier 1 --gpu-backend nvidia # 输出: -f docker-compose.base.yml -f docker-compose.nvidia.yml -f extensions/services/...加上--env参数则以环境变量形式输出COMPOSE_PRIMARY_FILE、COMPOSE_FILE_LIST、COMPOSE_FLAGS方便安装脚本一键 source。安装器compose-select.sh和主机代理ods-host-agent.py就是这么拿到完整栈的。安全扫描解析器还是道消毒门 ️值得强调的是解析器不只是找文件它还会对用户扩展的 compose 片段做严格安全扫描用户扩展内容一律视为不可信拒绝privileged特权模式、docker.sock挂载、绝对路径绑定挂载——这些都是容器逃逸的典型手段拒绝以 root 运行、host 网络/PID 命名空间、危险 capabilities如SYS_ADMIN端口必须绑定127.0.0.1防止服务意外暴露到局域网扩展服务名不得与核心服务重名对照 core-service-ids.json避免影子服务劫持内置的 llama-server 等组件用户扩展的 compose 文件路径必须留在自己的目录内禁止路径穿越。任何一条不通过该扩展会被跳过并打印警告——恶意或写错的扩展进不了栈正常扩展畅通无阻。动手验证30 秒看懂解析结果克隆 ODS 后用不同显卡参数分别执行解析器对比输出差异即可直观感受动态装配# AMD 机器 bash ods/scripts/resolve-compose-stack.sh --gpu-backend amd --ods-mode local # Apple 芯片 bash ods/scripts/resolve-compose-stack.sh --gpu-backend apple # 云端模式 bash ods/scripts/resolve-compose-stack.sh --ods-mode cloud你会发现同样一行命令在三种机器上给出的文件清单完全不同——这正是 ODS 能在几十种硬件上一套代码、零手工配置跑通的原因。延伸阅读与关键文件清单文件 / 文档作用ods/scripts/resolve-compose-stack.shCompose 解析器本体bash 外壳 内嵌 Python 逻辑ods/docs/COMPOSE_RESOLVER_CONTRACTS.md五层模型与解析契约新增服务/后端的开发指南ods/docs/EXTENSIONS.md扩展机制详解含 compose 片段如何自动并入服务栈ods/docs/HOST-AGENT-API.md主机代理如何调用解析器启停扩展容器ods/docker-compose.base.yml基础栈核心服务定义ods/docker-compose.nvidia.yml / docker-compose.amd.yml典型硬件覆盖层示例一句话总结resolve-compose-stack 把哪台机器、什么模式、装了哪些扩展三个变量翻译成一串精确的 compose 文件清单让 ODS 的 AI 服务器在任何硬件上都只需一条命令即可完整装配。想深入源码建议从解析器的参数解析循环文件开头读起再到_scan_user_compose_content安全扫描函数最后对照契约文档理解五层模型一条完整的原理链路就打通了。【免费下载链接】ODSTurn your PC, Mac, or Linux box into an AI server. LLM inference, chat UI, voice, agents, workflows, RAG, and image generation.项目地址: https://gitcode.com/GitHub_Trending/dr/ODS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表