用途:为需要可复现实验并使用 AzureML 云端执行的 AI 项目提供经过验证的项目结构与工作流规范,让本地能运行的代码同样能在 AzureML 上运行,且不牺牲后续走向生产的能力。
主要能力与结构:以三层原则组织——代码层(纯 Python,不含平台依赖)、规格层(job YAML,声明代码在目标平台如何执行,与代码同目录)、编排层(Makefile、CI,触发执行)。一切皆包:每个包是 uv 工作区成员,拥有自己的 pyproject.toml、[build-system]、src 布局、源码、测试与依赖,结构统一。依赖显式声明,含通过 [tool.uv.sources] 引用其他工作区包,未声明导入会失败。同目录放置理解与运行所需的一切。同一命令、同一 lockfile 在笔记本、虚拟机或 AzureML 上结果一致;一个 Dockerfile 同时作为 devcontainer 与云端 runner,Python 依赖由 uv 运行时安装。提供精简 Makefile 作为唯一入口,含 make help 自文档。
初始化步骤:复制 assets/ 中的核心资产得到根 pyproject.toml(工作区声明、仅开发依赖)、Makefile、AGENTS.md、.devcontainer/ 与 .env;在 src/ 下创建首个包并据 mypkg 改名;从 .env 复制创建用户 .env.local 并替换占位符;由人工在 devcontainer 中重新打开;运行 make sync 生成并提交 uv.lock;再执行验证循环。
验证与用法:make sync 生成根 uv.lock;make run pkg=<package_name> 产生预期输出或文件;make test 全部通过,三者均需退出码为 0。云端执行保持独立步骤:先在包目录添加 aml-job.yaml 并与 main.py 的 command、inputs 对齐,确保 .env/.env.local 的 Azure 配置有效,填写 YAML 中计算目标与数据集等占位符,再运行 make aml pkg=<package_name>,并在 Azure ML Studio 确认作业完成、tags/metrics 可见、outputs/ 含预期产物。
限制与约定:作业之后的资产注册、模型部署、定期调度属于作业外的编排层,通常放在 CI 或运维脚本,绝不泄漏进 Python 代码或 job YAML。扩展(lint 与钩子、实验追踪、Pipelines、Datasets)只在需要时添加。选择 CLI v2 而非 Python SDK,以保持 YAML 声明式运行契约与代码平台无关。具体版本号、费用与官方链接等资料暂未提供。