专用端点#
Ultralytics Platform 支持将 YOLO 模型部署到全球 42 个区域的专属端点。每个端点都是一个单租户服务,具有唯一的端点 URL 和独立的监控。默认资源大小在空闲时可缩减为零;自定义大小则会保持一个预热实例,并按运行时间计费。

创建端点#
从部署选项卡创建#
从模型的 Deploy 选项卡部署模型:
- 进入你的模型
- 点击 Deploy 选项卡
- 查看世界地图和区域表格,该表格按从你所在位置测得的延迟排序
- 在你想使用的区域行中点击 Deploy
- 在对话框中检查 CPU、内存、定价和部署名称,然后点击 Create Deployment
建议的名称结合了模型名称和区域城市(例如 yolo26n-iowa),并且可以在部署前进行编辑。模型必须包含权重,否则标签页将显示空状态而不是区域表格。
从部署页面创建#
从侧边栏的全局 Deploy 页面创建部署:
- 点击 New Deployment
- 从模型选择器中选择模型,其中列出了已完成的模型
- 从小地图或延迟表格中选择区域
- 选择 CPU 和内存,查看定价,并根据需要编辑建议的部署名称
- 点击 Create Deployment

部署生命周期#
stateDiagram-v2
[*] --> Creating: Deploy
Creating --> Deploying: Service starting
Deploying --> Ready: Service URL published
Ready --> Stopping: Stop
Ready --> Deploying: Replace model
Stopping --> Stopped: Stopped
Stopped --> Deploying: Start
Deploying --> Stopped: Start failed
Ready --> [*]: Delete
Stopped --> [*]: Delete
Creating --> Failed: Error
Deploying --> Failed: Error
Failed --> [*]: Delete
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fff
classDef error fill:#F44336,color:#fff
classDef extern fill:#607D8B,color:#fff
class Creating,Deploying,Stopping proc
class Ready out
class Failed error
class Stopped extern连接 Slack alerts,以便在部署准备就绪或启动失败时接收消息。
区域选择#
你可以从全球 42 个区域中进行选择。交互式区域地图和表格会显示:
- 区域标记:按延迟以绿色到红色的渐变进行颜色编码(区域越快越绿,越慢越红)
- 已部署区域:在表格中以 "Deployed" 徽章突出显示
- 部署中的区域:标记和表格行会显示动画脉冲指示器
- 双向高亮:将鼠标悬停在地图上会高亮对应的表格行,反之亦然

模型 Deploy 标签页上的区域表格包含:
| 列 | 描述 |
|---|---|
| 位置 | 带国旗图标的城市和国家 |
| 区域 | 区域标识符 |
| 延迟 | 从你的浏览器测得的 ping 时间 |
| 距离 | 从你大致所在位置到该区域的距离,单位为 km |
| 操作 | Deploy 按钮或 "Deployed" 状态徽章 |
表格支持按城市、国家和区域搜索,默认按延迟排序。
New Deployment 对话框(来自全局 Deploy 页面)显示一个更简洁的区域表格,仅包含 Location、Latency 和 Select 列,列出速度最快的 20 个区域,并注明其余区域。使用小地图选择其他任意区域。
你的浏览器会测量到 42 个区域中每个区域的延迟,结果会缓存 30 分钟,并在 Deploy 选项卡和 New Deployment 对话框之间共享。在模型 Deploy 选项卡中使用 Rescan 按钮,从你当前的网络重新测量。距离根据请求的大致位置计算,因此仅供粗略参考,并非精确值。
可用区域#
| 区域 | 位置 |
|---|---|
| us-central1 | 美国爱荷华州 |
| us-east1 | 南卡罗来纳州,美国 |
| us-east4 | 北弗吉尼亚州,美国 |
| us-east5 | 哥伦布,美国 |
| us-south1 | 达拉斯,美国 |
| us-west1 | 俄勒冈州,美国 |
| us-west2 | 洛杉矶,美国 |
| us-west3 | 盐湖城,美国 |
| us-west4 | 拉斯维加斯,美国 |
| northamerica-northeast1 | 蒙特利尔,加拿大 |
| northamerica-northeast2 | 多伦多,加拿大 |
| northamerica-south1 | 克雷塔罗,墨西哥 |
| southamerica-east1 | 圣保罗,巴西 |
| southamerica-west1 | 圣地亚哥,智利 |
端点配置#
新建部署对话框#
New Deployment 对话框允许你选择模型、区域、资源和部署名称:
| 字段 | 描述 |
|---|---|
| 模型 | 工作区中已完成的任意模型,通过选择器选择 |
| 区域 | 部署区域,可在迷你地图或延迟表中选择 |
| CPU 和内存 | 选择资源大小并查看其显示的定价 |
| 部署名称 | 模型和区域设置完成后自动生成,也可以编辑 |

在资源控件中选择 CPU 和内存大小,并在创建部署前查看显示的定价。默认大小可以使用可用的免费部署额度;自定义大小则使用按量计费。默认大小在空闲时会缩减为零。自定义大小会保持一个预热实例,并从就绪状态开始计费,直到你停止端点为止(包括空闲时间)。当你选择 New deployment… 时,Agents 会重新使用此对话框。

部署名称由模型名称和区域城市组合而成,例如 yolo26n-iowa。在模型 Deploy 选项卡中,如果该模型已在此区域部署,则会添加数字后缀(例如 yolo26n-iowa-2)。工作区内的名称必须唯一——部署已存在的名称会返回错误,而不会静默重命名。
部署选项卡(快速部署)#
从模型的 Deploy 标签页进行部署会打开相同的对话框,其中已预先选定模型和区域。在创建端点之前,请检查资源大小、定价和自动生成的名称。部署在创建过程中会显示在 Active Deployments 列表中。
管理端点#
视图模式#
部署列表支持三种视图模式:
| 模式 | 描述 |
|---|---|
| 卡片 | 包含日志、代码、预测和可用监控标签页的完整详情卡片 |
| 紧凑 | 包含关键指标的较小卡片网格 |
| 表格 | 带有可排序列和搜索功能的数据表 |

部署卡片(卡片视图)#
卡片视图中的每张部署卡片显示:
- 页眉:名称、地区标志、状态徽章以及针对当前状态的操作按钮——状态为就绪时可更新配置、替换和停止,状态为已停止时可启动,任何时候都可以删除
- 端点 URL:可复制的 URL,以及指向端点自身 API 参考的链接
- 指标:请求数(24 小时)、P95 延迟、错误率,或“尚无流量”
- 运行状况检查:显示延迟并支持手动刷新的实时运行状况指示器
- 标签页:
Logs、Code和Predict;付费端点还会显示Monitoring - 页脚:绑定到部署的 API 密钥前缀,以及部署变为就绪状态的日期
- 状态消息:部署失败时显示失败原因
只有当部署处于 就绪 状态时,才会显示 URL、指标、运行状况检查和选项卡。Logs 选项卡显示最近的日志条目,并支持按严重性筛选(全部 / 错误)。Code 选项卡显示可直接使用的 Python、JavaScript 和 cURL 代码示例,其中包含你的端点 URL;工作区所有者还可查看绑定的 API 密钥(请参阅 监控)。Predict 选项卡提供内联预测面板,用于直接在部署上进行测试。
紧凑卡片显示旗帜、名称、城市、状态和三个指标。表格视图支持按名称、区域、状态、请求数、P95 和错误进行排序,并可跨名称、区域和状态搜索。两种视图都保留删除操作;启动、停止和替换操作可在卡片视图中使用。
更新 CPU 和内存#
- 在卡片视图中打开一个就绪的端点。
- 点击更新部署配置。
- 选择 CPU 和内存,并查看显示的每小时费用。
- 点击更新配置。在新的配置准备就绪之前,当前配置会继续提供服务。

自定义资源采用运行时间计费并保持实例处于预热状态。恢复默认资源会恢复按需缩减至零的行为并移除付费的监控标签页。
监控图表和示例图像是轻量级的内存数据。停止、重启、重新部署、调整大小或替换模型可能会清除这些数据。重新启动端点不会恢复历史记录。在更改端点之前,请将有用的示例保存到数据集中并等待数据导入完成。运行指标和日志拥有单独的历史记录窗口。
替换模型#
在不更改 URL 的情况下,替换就绪端点背后的模型:
- 在 卡片 视图中打开部署
- 点击 替换模型
- 从同一工作区中选择另一个已完成的模型
- 可选:编辑部署名称
- 点击 替换模型
当前模型会继续提供服务,同时替换模型启动。替换模型就绪后,流量会转移到新模型。部署 ID、URL、区域和 API 密钥保持不变;只有当你输入新名称时,其显示名称才会更改。如果替换失败,之前的模型和名称会继续处于活动状态。
替换必须满足以下所有条件,否则会被拒绝:
- 部署处于 就绪 状态,且没有其他生命周期操作正在执行
- 替换模型包含权重,并且与部署属于同一工作区
- 替换模型不是当前已部署的模型
替换会从部署中移除之前的模型。每个端点只提供一个模型的服务;如果你需要同时使用两个模型,请创建另一个部署。
部署状态#
| 状态 | 描述 |
|---|---|
| 创建中 | 正在设置部署 |
| 部署中 | 容器正在启动 |
| 就绪 | 端点已上线并接受请求 |
| 停止中 | 端点正在关闭 |
| 已停止 | 端点已暂停且不可用 |
| 失败 | 部署失败(请参阅错误消息) |
端点 URL#
每个端点都有唯一的 URL,例如:
https://predict-<deployment-id>-<hash>-<region>.a.run.app
点击复制按钮复制网址。点击文档图标打开端点自己的 API 参考。端点提供这些路径服务:
| 路径 | 方法 | 描述 |
|---|---|---|
/predict | POST | 运行推理;需要部署 API 密钥 |
/health | GET | 运行状况检查,报告服务状态和缓存模型数量 |
/ | GET | 已部署服务的状态摘要 |
/docs | GET | 为此部署、模型和区域生成的交互式 API 参考 |
生命周期管理#
控制端点状态:
graph LR
R[Ready]:::out -->|Stop| S[Stopped]:::extern
S -->|Start| R
R -->|Delete| D[Deleted]:::error
S -->|Delete| D
classDef out fill:#9C27B0,color:#fff
classDef error fill:#F44336,color:#fff
classDef extern fill:#607D8B,color:#fff| 操作 | 描述 |
|---|---|
| 启动 | 恢复已停止的端点 |
| 停止 | 暂停端点 |
| Delete | 永久移除端点 |
停止端点#
当你不希望端点接受请求时,请停止它:
- 点击部署卡片上的暂停图标
- 端点状态变为“正在停止”,然后变为“已停止”
已停止的端点:
- 不接受请求,并不报告任何实时指标或健康状态
- 停止产生运行时间费用
- 在服务实例关闭时丢失临时监控统计数据和示例图像
- 保留其 URL、区域和绑定的 API 密钥,并且可以随时重启
- 仍会计入你计划中的部署配额——删除端点即可释放其名额
删除端点#
永久移除端点:
- 点击部署卡片上的删除(垃圾桶)图标
- 在对话框中确认删除
删除会立即生效且无法恢复——部署不会进入回收站。删除端点会移除其服务,并释放部署配额中的一个名额。你始终可以创建新端点,但它会获得新的 URL。
当模型或项目被永久删除,或者已移入回收站的模型或项目 达到其保留期限时,相关部署也会被移除。
使用端点#
身份验证#
每个部署都绑定到模型所属工作区中的一个 API 密钥。请在请求中包含该密钥:
Authorization: Bearer YOUR_API_KEY端点只接受创建时绑定的密钥,因此其他任何密钥都无法打开它——即使是 同一工作区中的另一个有效密钥也不行。若要控制绑定的密钥,请使用工作区所有者的密钥通过 API 进行部署: 该密钥会被绑定,并且你已经持有它。通过其他方式创建的部署(Platform UI,或以团队成员身份进行身份验证的 API 调用) 会自动绑定所属工作区的一个有效密钥——你可以通过部署卡片页脚中显示的密钥 前缀来识别它,并向工作区所有者索取其值,因为只有所有者可以查看 密钥值(请参阅API 密钥)。没有绑定密钥的团队成员仍可以 在浏览器中通过 Platform predict 代理运行推理。
删除或停用绑定的 API 密钥并不会撤销对端点的直接访问权限——任何持有该密钥字符串的人仍然可以调用端点 URL。受影响的是 Platform predict 代理,因为它会实时检查密钥,并报告该密钥已不可用。若要完全撤销访问权限,请停止或删除部署;轮换密钥后,请重新创建端点,使其绑定新密钥。
直接发送端点请求#
将生产请求直接发送到部署卡片上显示的 URL。这些请求不会经过 Platform API 速率限制器,因此每分钟 20 次请求的预测限制不适用。端点仍有自己的 容量上限:
- 每个端点由一个实例提供服务,同时处理数量有限的请求
- 无法及时处理的请求会返回
429,并带有Retry-After标头 - 单个请求最长可运行 1 小时,因此可以完成视频推理
- 大于 1 KB 的响应会进行 gzip 压缩,并且允许跨源浏览器请求
请求示例#
import requests
# Deployment endpoint
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
# Headers with your deployment API key
headers = {"Authorization": "Bearer YOUR_API_KEY"}
# Inference parameters
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
# Send image for inference
with open("image.jpg", "rb") as f:
response = requests.post(url, headers=headers, data=data, files={"file": f})
print(response.json())请求参数#
| 参数 | 类型 | 默认值 | 范围 | 描述 |
|---|---|---|---|---|
file | file | - | - | 图像或视频文件(除非设置了 source,否则为必需) |
conf | float | 0.25 | 0.01 – 1.0 | 最小置信度阈值 |
iou | float | 0.7 | 0.0 – 0.95 | NMS IoU 阈值 |
imgsz | int | 640 | 32 – 1280 | 输入图像大小(像素) |
normalize | bool | false | - | 将边界框坐标作为 0 – 1 返回 |
decimals | int | 5 | 0 – 10 | 坐标值的小数精度 |
bits | int | 8 | 8, 12, 16 | 深度图量化,仅适用于深度模型 |
source | string | - | - | 图像 URL 或 base64 字符串(file 的替代项) |
请参阅深度响应,了解 bits 如何改变返回的深度图,以及如何
对其进行解码。
专用端点通过 file 参数同时接受图像和视频。
- 图像格式(最大 100 MB):AVIF、BMP、DNG、HEIC、JP2、JPEG、JPG、MPO、PNG、TIF、TIFF、WEBP
- 视频格式(最大 100 MB):ASF、AVI、GIF、M4V、MKV、MOV、MP4、MPEG、MPG、TS、WEBM、WMV
每个视频帧都会单独处理,并按帧返回结果。你也可以通过 source 参数传入公开图像 URL 或 base64 编码的图像,而不是传入 file。超大上传内容会返回 413 并被拒绝。
响应格式#
与共享推理相同,但包含特定于任务的字段。
常见问题#
端点数量限制取决于计划:
- Free:最多 3 个部署
- Pro:最多 10 个部署
- Enterprise:部署数量不限
在计划配额范围内,每个模型仍可以部署到多个区域。配额计入模型所属的工作区, 因此,部署共享模型的团队成员会消耗所有者的配额。达到限制后,系统会返回错误,要求你先删除现有部署。
要实现全球覆盖:
- 部署到多个区域
- 使用负载均衡器或 DNS 路由
- 将用户路由到最近的端点
冷启动时间取决于模型,以及端点是否已缩容至零;Platform 会允许空闲端点额外等待一段时间后再将其报告为不健康。在流量突增前,从部署卡片运行健康检查可以预热实例。
不可以。每个部署都会通过其部署卡片上显示的生成端点 URL 提供流量,该 URL 在部署的整个生命周期内保持稳定——包括模型替换期间。