运行时依赖
安装命令
点击复制技能文档
安装多芯片软件栈 在运行的GPU容器中安装5个包,按依赖顺序,具有每个包的验证和结构化错误报告。 技能组件 install-stack/ ├── SKILL.md # 本文件 — 执行流程 ├── scripts/ │ ├── detect_network.py # 探测GitHub/PyPI,返回镜像配置(JSON) │ ├── collect_env_info.py # Python/glibc/arch/vendor/disk 信息(JSON) │ ├── select_flagtree_wheel.py # 匹配vendor+python+glibc → wheel 指定器(JSON) │ └── validate_packages.py # 导入测试所有5个包,报告状态(JSON) └── references/ ├── vendor-mappings.md # FlagCX 制作标志,适配器名称,依赖链 └── network-mirrors.md # GitHub/PyPI 镜像配置规则
前提条件 具有PyTorch + GPU访问权限的运行Docker容器(来自/gpu-container-setup) 知道容器名称和GPU供应商 如果独立调用,询问用户容器名称和GPU供应商。 如果从/flagrelease orchestrator调用,则这些作为上下文传递。
执行流程 步骤 0:解析容器和供应商 验证容器正在运行:docker inspect --format='{{.State.Status}}' | grep -q running 将 scripts/collect_env_info.py 复制并运行在容器内以获取供应商、Python版本、glibc版本、架构和可用磁盘空间: docker cp /scripts/collect_env_info.py :/tmp/ docker exec python3 /tmp/collect_env_info.py 如果供应商未知且用户没有提供 --vendor,则询问用户。
步骤 1:检测网络环境 将 scripts/detect_network.py 复制并运行在容器内: docker cp /scripts/detect_network.py :/tmp/ docker exec python3 /tmp/detect_network.py 解析JSON输出以获取GITHUB_PREFIX和PIP_INDEX以用于后续命令。 参见 references/network-mirrors.md 以获取回退规则。
步骤 2:检查磁盘空间 从 collect_env_info.py 输出中,验证至少有 10GB 可用空间。 如果没有,则警告用户并询问是否继续。
步骤 3:安装包(按依赖顺序) 参见 references/vendor-mappings.md 以获取依赖链和安装顺序: vLLM → FlagTree → FlagGems → FlagCX → vllm-plugin-FL 3.1:vLLM 0.13.0 docker exec pip install ${PIP_INDEX} vllm==0.13.0 快速验证:docker exec python3 -c "import vllm; assert vllm.__version__ == '0.13.0'" GATE:如果vLLM安装失败 → 记录错误并退出技能。
3.2:FlagTree(预编译轮) 运行 scripts/select_flagtree_wheel.py 以找到正确的轮: python3 /scripts/select_flagtree_wheel.py \ --vendor --python --glibc 如果状态为 FOUND,则卸载 stock triton 并安装轮: docker exec bash -c ' python3 -m pip uninstall -y triton python3 -m pip uninstall -y triton python3 -m pip install ' 如果状态为 NOT_FOUND,则记录不匹配并继续(不退出)。
3.3:FlagGems docker exec bash -c " cd /tmp && git clone ${GITHUB_PREFIX}/FlagOpen/FlagGems cd FlagGems && pip install ${PIP_INDEX} -e . " 失败 → 记录并继续。
3.4:FlagCX(两阶段构建) 阅读 references/vendor-mappings.md 以查找检测到的供应商的正确Make标志和FLAGCX_ADAPTOR。 阶段 1:构建C++库: docker exec bash -c " cd /tmp && git clone ${GITHUB_PREFIX}/flagos-ai/FlagCX cd FlagCX && git submodule update --init --recursive make -j\$(nproc) " 阶段 2:安装PyTorch插件: docker exec bash -c " cd /tmp/FlagCX/plugin/torch FLAGCX_ADAPTOR= pip install -e . --no-build-isolation " 失败 → 记录并继续。
3.5:vllm-plugin-FL docker exec bash -c " cd /tmp && git clone ${GITHUB_PREFIX}/flagos-ai/vllm-plugin-FL cd vllm-plugin-FL pip install ${PIP_INDEX} -r requirements.txt pip install --no-build-isolation -e . " 在Iluvatar上,如果requirements.txt失败,则使用requirements_iluvatar.txt重试。 GATE:如果vllm-plugin-FL失败 → 记录错误并退出技能。
步骤 4:验证所有包 将 scripts/validate_packages.py 复制并运行在容器内: docker cp /scripts/validate_packages.py :/tmp/ docker exec python3 /tmp/validate_packages.py 这将生成一个关于所有5个包的综合JSON报告,包括导入状态、版本和门检查。
步骤 5:设置运行环境 如果FlagCX安装成功,则持久化FLAGCX_PATH: docker exec bash -c "echo 'export FLAGCX_PATH=/tmp/FlagCX' >> ~/.bashrc"
步骤 6:生成最终报告 将所有结果合并到结构化输出中: { "status": "PASS | PARTIAL | FAIL", "stage": "install-stack", "container": "", "vendor": "", "network": { "github_mirror": true, "pypi_mirror": true }, "python_version": "3.11", "glibc_version": "2.34", "packages": { "vllm": { "status": "PASS", "version": "0.13.0" } } }