Cog CLI 深度实战:6 条命令把 Python 模型变成生产级推理容器
Cog CLI 深度实战6 条命令把 Python 模型变成生产级推理容器【免费下载链接】cogContainers for machine learning项目地址: https://gitcode.com/GitHub_Trending/co/cogCog 是面向机器学习模型容器化的开源工具Python 写模型一份 cog.yaml 声明环境即可打包成带标准 HTTP 接口的 Docker 镜像。本文按项目初始化、本地推理、服务启动、推送 registry 的完整流程串讲 Cog CLI 各命令的参数、内部调用链与隐藏能力给你一份可直接上手的实操参考。从一个真实场景开始本地跑一次模糊假设你只有一个用 PIL 模糊照片的小脚本想直接在模型最终的运行环境里验证它但不想碰手写 Dockerfile、CUDA 版本对齐、包 HTTP 接口这些杂事。仓库里的 examples/blur/ 就是这样个项目cog.yaml 只声明 Python 版本和依赖run.py 里的Runner.run()接收一张图和一个模糊半径返回输出图路径。cd examples/blur cog run -i imageexamples/kodim24.png -i blur4这条命令背后发生的事构建镜像 → 启动容器 → 容器内执行setup()→ 向/predictions发请求 → 把返回的图片写回本地文件。处理完的输出就是这张带方框模糊的照片注意-i imageexamples/kodim24.png里的前缀本地文件由 CLI 读取后以 base64 data URL 形式上传进容器这段逻辑在 pkg/cli/predict.go 的transformPathsToBase64URLs里MIME 类型按扩展名推断。一次完整旅程从空目录到线上服务一条模型从 0 到生产的最短路径每一步都是一条命令# 1. 生成项目骨架 cog init # 2. 构建镜像 cog build -t my-model:latest # 3. 本地跑一次预测 cog run -i imagephoto.jpg # 4. 启动 HTTP 服务做联调 cog serve -p 8393 # 5. 登录并推送 cog login cog push r8.im/your-username/my-modelcog init从内嵌模板写出 cog.yaml、run.py、requirements.txt模板通过 Go 的 embed 直接编进二进制。cog build依次完成解析配置、静态生成 OpenAPI schema、生成 Dockerfile、构建镜像、写入 label入口在 pkg/cli/build.goDockerfile 生成在 pkg/dockerfile/。cog run构建后启动容器经 HTTP 与容器内运行时交互执行核心在 pkg/predict/predictor.go。cog serve启动同一个运行时但不发预测请求常驻等待调用。cog push复用 build 的构建路径推送与目标 registry 的后处理由 pkg/provider/ 按目标地址分派。核心命令逐个讲cog init一步生成项目骨架在当前目录生成开箱即用的配置文件。它没有专属参数唯一的行为差异是已存在的文件会提示Skipped existing ...并跳过绝不覆盖你的代码。AGENTS.md 会优先尝试下载最新版失败时回退到内嵌模板见 pkg/cli/init.go。生成的 run.py 是继承BaseRunner的骨架类from cog import BaseRunner, Input, Path class Runner(BaseRunner): def setup(self) - None: Load the model into memory to make running multiple requests efficient def run(self, image: Path Input(descriptionGrayscale input image), scale: float Input(descriptionFactor to scale image by, ge0, le10, default1.5), ) - Path: Run the model on a single inputInput(ge0, le10, default1.5)这类约束注解会被 Cog 静态解析进 OpenAPI schema后续的输入校验就靠它。cog build构建镜像cog build -t my-model:latest cog build --no-cache --separate-weights常用参数参数默认值说明-t, --tag—镜像标签优先于 cog.yaml 的 image/model--no-cachefalse禁用 Docker 构建缓存--separate-weightsfalse权重拆到独立层便于单独上传--progressauto进度格式 auto/tty/plain/quiet--secret—构建期密钥idfoo,src/path/to/file--openapi-schema—从文件加载 schema替代静态生成--use-cuda-base-imageautoauto/trueNVIDIA CUDA/false纯 Python镜像更小--use-cog-base-imagetrue用预构建 Cog 基础镜像加快冷启动-f, --filecog.yaml配置文件路径易错点--use-cog-base-image、--use-cuda-base-image、隐藏的--dockerfile三者互斥同时设置会被checkMutuallyExclusiveFlags直接拦下。镜像命名优先级-t cog.yaml 的imagemodel 按项目目录生成的默认名。cog run本地跑一次推理cog run -i prompta cat -i steps50 cog run -i imagephoto.jpg -o out.jpg echo {prompt: a cat} | cog run --json -常用参数参数说明-i, --input namevalue可重复前缀表示本地文件-o, --output输出落盘路径多个 Path 输出依次命名name.0.ext、name.1.ext-e, --env注入容器的环境变量--json以 JSON 对象传输入支持file与 stdin 的-与-i互斥--use-replicate-token把宿主机REPLICATE_API_TOKEN传入模型上下文--setup-timeout容器 setup 超时秒数默认 300--gpus同docker run --gpus格式进阶技巧把已构建镜像名作为位置参数传入就切换到基于镜像路径——拉取镜像、优先用镜像 schema label 预校验输入label 不可用时在容器启动后再取运行时 schemacog run r8.im/your-username/my-model -i prompthello旧命令cog predict仍可执行但会打印弃用警告二者共享同一实现newPredictionCommand。cog serve起一个 HTTP 服务cog serve # Serving at http://localhost:8393 curl http://localhost:8393/predictions -X POST \ -H Content-Type: application/json \ -d {input: {prompt: a cat}}参数默认值说明-p, --port8393宿主机发布端口容器内固定监听 5000--host127.0.0.1端口映射绑定地址0.0.0.0 允许外部访问--upload-url—文件输出的上传地址自动附加host.docker.internal:host-gateway--playground/--playground-port关 / 9000同时起浏览器调试界面--gpusauto同 cog run易错点访问端口不是 5000——5000 是容器内绑定端口宿主机默认是 8393。另外 serve 构建时跳过COPY . /src源码以卷挂载到/srcserveBuildOptions中ExcludeSource: true改代码不用重建镜像见 pkg/cli/serve.go。cog exec容器里执行任意命令cog exec python -c import torch; print(torch.cuda.is_available()) cog exec -p 8888 jupyter notebook --ip0.0.0.0 cog exec -e HUGGING_FACE_HUB_TOKENxxx python download.py参数说明-p, --publish端口发布支持8000、0.0.0.0:8000、[::1]:8000三种形式-e, --env环境变量namevalue--gpus同docker run --gpus实现细节exec 用SetInterspersed(false)关闭参数交错解析第一个位置参数之后的所有内容包括--ip这种长得像 flag 的东西都会原样传给容器内命令不会被 CLI 吃掉。cog push 与 cog login部署与认证cog login # r8.im 走 token 流程其他 registry 提示输入用户名/密码 cog login --token-stdin token.txt # CI 非交互场景 cog push r8.im/your-username/my-model cog push registry.example.com/you/model # 任意 OCI registrycog push 与 build 共享大部分参数--no-cache、--secret、--separate-weights等目标是完整镜像引用cog.yaml 的model字段已配置时可省略用COG_MODEL/COG_MODEL_TAG环境变量可分别覆盖完整引用或仅 tag。两个值得注意的细节validatePushArgs见 pkg/cli/push.go在数分钟的构建开始前就先解析目标引用配置冲突当场报出推送成功后打印 digest 固定的引用树model / image / weight 三行可以直接复制。registry 行为由 pkg/provider/ 抽象Replicate 与通用 OCI 各有一个 provider。 内部机制走读一次 cog run 背后发生了什么本地源码预测时CLI 与容器之间是严格的时序调用链见 pkg/cli/predict.go 的cmdPredict三个值得记住的实现细节校验先于构建。schema 生成与输入校验在调用resolver.Build()之前完成输错一个参数名不会触发分钟级构建。GPU 回退。未显式传--gpus且模型声明需要 GPU 时CLI 自动以gpusall启动若 Docker 报缺设备驱动ErrMissingDeviceDriver则去掉 GPU 参数重试并提示Missing device driver, re-trying without GPU。run、serve、exec 三处都有这段逻辑。RUST_LOG 透传。宿主机设置了RUST_LOG时自动传入容器方便调试容器内 Rust 运行时coglet的日志serve/exec 还会注入LOG_FORMATconsole得到人读日志。参数与配置速查全局参数定义在 pkg/cli/root.go所有子命令生效参数说明--debug打开调试输出--no-color禁用彩色并写入NO_COLOR1--version显示版本与构建时间--profile/--registry隐藏参数性能剖析 / 覆盖 registry 主机环境变量变量作用BUILDKIT_PROGRESS覆盖--progress默认值RUST_LOG透传进容器调试 Rust 运行时REPLICATE_API_TOKEN配合--use-replicate-token传入模型上下文COG_REGISTRY_HOST覆盖 registry 主机等价于--registryTERMdumb构建进度默认退化为 plain 文本cog.yaml 常用字段完整模板见 pkg/cli/init-templates/base/cog.yaml字段说明build.gpu是否需要 GPU决定默认gpusallbuild.python_version/python_requirementsPython 版本与依赖文件build.system_packages要安装的 apt 包build.run环境就绪后执行的命令run入口形如run.py:Runnerimage/model推送目标引用push 时解析优先级 image model隐藏能力与进阶cog debug隐藏只生成 Dockerfile 不构建排查构建问题利器加--separate-weights会分别打印权重与 runner 两份 Dockerfile 及排除规则。cog weights隐藏实验性import/pull/status三个子命令把 cog.yaml 声明的权重源打包成 OCI 层、更新 weights.lock 并推送import 会预热本地内容寻址存储之后cog run可直接挂载权重而无需单独 pull。cog doctor实验性诊断配置弃用字段、predict→run 迁移、Pydantic 版本等默认只报告--fix自动应用安全修复存在未修复错误时返回非零退出码方便进 CI。cog train隐藏且已标记弃用向/trainings端点发请求与 run 共享执行路径-o默认输出到weights目录。cog playground为运行中的 Cog HTTP API 提供浏览器原生界面请求经本地代理转发到目标 API也可用cog serve --playground同时拉起。此外还有一个独立的base-image二进制用于维护 Cog 基础镜像不是 cog 的子命令见 architecture/06-cli.md。如何自行验证上述行为仓库的集成测试是 integration-tests/tests/ 下的 txtar 文件文件名与本文描述的行为一一对应输入校验input_validation_before_build.txtar、invalid_int_validation.txtar、union_input_cli.txtar预测与输出predict_json_input.txtar、predict_output_file.txtar、cancel_async_prediction.txtar容器交互exec_basic.txtar、pty_interactive.txtar、healthcheck_during_prediction.txtar构建build_openapi_schema.txtar、build_pip_freeze.txtar、torch_baseimage_fallback.txtar诊断与迁移doctor_clean_project.txtar、doctor_predict_to_run_migration.txtar想跑真实用例克隆源码后挑 examples/ 里任意项目blur、resnet 等执行cog run即可对照git clone https://gitcode.com/GitHub_Trending/co/cog行为层面的说明可对照 architecture/06-cli.mdHTTP 协议见 docs/http.md。小结Cog CLI 把写镜像、配环境、包接口的琐碎收敛成几条命令模型作者只需要写setup()和run()。想继续深入建议从 architecture/02-schema.md 的 schema 生成与 docs/python.md 的 Runner 接口参考两条线入手。【免费下载链接】cogContainers for machine learning项目地址: https://gitcode.com/GitHub_Trending/co/cog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

OfficeCLI Examples 全指南:用 CLI 与 Python SDK 自动化 Word、Excel、PowerPoint

OfficeCLI Examples 全指南:用 CLI 与 Python SDK 自动化 Word、Excel、PowerPoint

CLIAI 应用MCP 服务 【免费下载链接】OfficeCLI OfficeCLI is the first and best Office suite purpose-built for AI agents to read, edit, and automate Word, Excel, and PowerPoint files. Free, open-source, single binary, no Office installation required. 项目地址…

2026/9/30 2:23:46 阅读更多 →
Dockge 前端国际化翻译指南:通过 Weblate 协作与源码级语言扩展

Dockge 前端国际化翻译指南:通过 Weblate 协作与源码级语言扩展

后端前端容器编排运维 【免费下载链接】dockge A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager 项目地址: https://gitcode.com/GitHub_Trending/do/dockge 点击查看 免费下载 本指南以 Dockge 官方翻译说明&#xff…

2026/9/30 2:22:45 阅读更多 →
500-AI-Agents-Projects 实战指南:500+ 开源 AI Agent 项目精选、框架选型与行业用例全景解析

500-AI-Agents-Projects 实战指南:500+ 开源 AI Agent 项目精选、框架选型与行业用例全景解析

示例工程人工智能 【免费下载链接】500-AI-Agents-Projects The 500 AI Agents Projects is a curated collection of AI agent use cases across various industries. It showcases practical applications and provides links to open-source projects for implementation, i…

2026/9/30 2:22:45 阅读更多 →

最新新闻

TypeScript 类型挑战:用 GetReadonlyKeys 精准提取对象中的只读键(type-challenges 5 深度解析)

TypeScript 类型挑战:用 GetReadonlyKeys 精准提取对象中的只读键(type-challenges 5 深度解析)

示例工程 【免费下载链接】type-challenges Collection of TypeScript type challenges with online judge 项目地址: https://gitcode.com/GitHub_Trending/ty/type-challenges 点击查看 免费下载 本文以 type-challenges 仓库中编号 00005、难度为 extreme 的题目…

2026/9/30 6:56:07 阅读更多 →
tldr 别名页机制深度解析:以阿拉伯语页 `pages.ar/common/..md` 为例

tldr 别名页机制深度解析:以阿拉伯语页 `pages.ar/common/..md` 为例

文档教程知识库 【免费下载链接】tldr Collaborative cheatsheets for console commands 📚. 项目地址: https://gitcode.com/GitHub_Trending/tl/tldr 点击查看 免费下载 本文以 tldr 仓库中的阿拉伯语别名页 pages.ar/common/..md 为切入点&#xff0…

2026/9/30 6:56:07 阅读更多 →
wampee如何配置网站

wampee如何配置网站

1.Wampee-3.1.0\bin\apache\apache2.4.33\conf\extra\httpd-vhosts.conf 这里可以配多个域名&#xff0c;修改对应的端口和网站的源码指向<VirtualHost *:88>ServerAdmin webmasterdummy-host.example.comDocumentRoot "E:/Wampee-3.1.0-beta-3.5/www/zw/public&qu…

2026/9/30 6:56:07 阅读更多 →
万物演化论24(第六章) 从一套房子,看见它所依附的整个系统

万物演化论24(第六章) 从一套房子,看见它所依附的整个系统

24&#xff5c;从一套房子&#xff0c;看见它所依附的整个系统在讨论家庭资产配置时&#xff0c;我们很容易把注意力集中在具体的资产上。买房时研究户型、楼层、面积、单价和贷款利率&#xff1b;卖房时关注挂牌价、成交价、租售比和市场行情。这些信息当然重要&#xff0c;但…

2026/9/30 6:56:07 阅读更多 →
20026・北京 GEO 优化公司哪家靠谱?AI 搜索营销服务商筛选指南

20026・北京 GEO 优化公司哪家靠谱?AI 搜索营销服务商筛选指南

一、前言生成式引擎优化&#xff08;GEO&#xff09;这一概念由普林斯顿大学等机构于 2024 年的 KDD 学术会议上正式提出&#xff0c;此后在不到两年的时间里&#xff0c;从一个学术术语成长为数字营销领域增速较快的独立赛道。行业演进大致经历了三个阶段&#xff1a;2023 年至…

2026/9/30 6:56:07 阅读更多 →
人工智能对企业创新韧性的影响(2011-2024年)(全新整理)数据说明:含原始数据、处理过程dofile文件、基准回归结果有效样本:26401条

人工智能对企业创新韧性的影响(2011-2024年)(全新整理)数据说明:含原始数据、处理过程dofile文件、基准回归结果有效样本:26401条

文章目录资料下载地址介绍一、数据介绍二、数据指标三、参考文献四、数据概览项目备注资料下载地址资料下载地址 点击这里下载资料 介绍 本文基于2011-2024年上市公司数据&#xff0c;借鉴《人工智能对企业创新韧性的影响——基于技术能力适应性视角》一文中的基准回归部分&…

2026/9/30 6:55:06 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述&#xff1a;为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多&#xff0c;后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表&#xff0c;动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介&#xff1a;本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档&#xff0c;聚焦城市公共广告资源信息化管理痛点&#xff0c;提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构&#xff0c;含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求&#xff0c;背景很直接&#xff1a;公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关&#xff0c;开放给几个业务团队用。结果第一个月账单出来&#xff0c;额度直接超了 4 倍。仔细查日志&#xff0c;发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集&#xff1a;Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践&#xff1a;原型怎样变成可用功能分类&#xff1a;[AI/大模型]细分主题&#xff1a;AI 增强型 CI/CD 流水线自动化与 GitOps 实践&#xff1a;Agent 工作流、工具调用与任务拆解&#xff1a;从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战&#xff1a;复盘记录怎样真正派上用场分类&#xff1a;[工程技术]细分主题&#xff1a;Kubernetes 生产环境运维与排障实战&#xff1a;可复制的项目复盘模板与决策记录大部分团队的事故复盘报告&#xff0c;最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理&#xff1a;核心链路应该先拆哪一步分类&#xff1a;[工程技术]细分主题&#xff1a;Docker 容器化技术与镜像安全管理&#xff1a;核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用&#xff08;包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →