专用端点#
Ultralytics Platform 支持将 YOLO 模型部署到全球 42 个区域的专属端点。每个端点都是一个单租户服务,具备按需归零(scale-to-zero)行为、唯一的端点 URL 以及独立的监控。

创建端点#
通过“部署”(Deploy)选项卡#
从模型的 Deploy 标签页部署模型:
- 导航到你的模型
- 点击 Deploy 选项卡
- 查看世界地图和区域表格,表格按你所在位置测得的延迟进行排序
- 在你想使用的区域行中点击Deploy
部署会立即开始,无需命名步骤:名称由模型名称和区域城市组合生成(例如 yolo26n-iowa)。模型必须包含权重,否则标签页会显示空状态,而不是区域表格。
通过“部署”(Deployments)页面#
从侧边栏的全局 Deploy 页面创建部署:
- 点击 New Deployment
- 从模型选择器中选择一个模型,其中列出了你已完成的模型
- 从小地图或延迟表格中选择一个区域
- 检查自动生成的部署名称,你可以在此处对其进行编辑
- 点击 Deploy Model

部署生命周期#
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 警报以便在部署就绪或启动失败时接收消息。
区域选择#
从全球 42 个区域中进行选择。交互式区域地图和表格显示了:
- 区域图钉:根据延迟以绿到红的渐变色标记(越快的区域越偏绿,越慢的区域越偏红)
- 已部署区域:在表格中带有“已部署”徽章高亮显示
- 正在部署的区域:图钉和表格行上带有动画脉冲指示器
- 双向高亮:在地图上悬停会高亮对应的表格行,反之亦然
模型 Deploy 标签页上的区域表格包含:
| 列 | 描述 |
|---|---|
| Location(位置) | 城市和国家(带旗帜图标) |
| Zone(区域) | 区域标识符 |
| 延迟 | 从你的浏览器测量的 ping 响应时间 |
| Distance(距离) | 距离你大致位置的公里数 |
| Actions(操作) | 部署按钮或“Deployed”状态徽章 |
该表格支持按城市、国家和区域进行搜索,默认按延迟排序。
New Deployment 对话框(来自全局 Deploy 页面)显示一个更简单的区域表格,仅包含位置、延迟和选择列,列出了速度最快的 20 个区域,并附有关于其余区域的说明。使用小地图选择任何其他区域。
你的浏览器会测量到所有 42 个区域的延迟,结果会缓存 30 分钟,并在 Deploy 标签页和 New Deployment 对话框之间共享。使用模型 Deploy 标签页上的重新扫描按钮从当前网络重新测量。距离是根据请求的大致位置计算的,因此它只是一个粗略的参考,而不是精确值。
可用区域#
| 区域 | 位置 |
|---|---|
| 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 对话框收集三个输入:
| 字段 | 描述 |
|---|---|
| 模型 | 工作区中的任意已完成模型,通过选择器选择 |
| 区域 | 部署区域,在小地图或延迟表格中选择 |
| 部署名称 | 一旦模型和区域设置好即自动生成,并且可编辑 |
在名称下方,一个只读的资源面板带有一个 Custom resources coming soon 徽章。目前资源不可配置:每个端点都作为一个单一实例运行,在闲置时会自动缩减为零。
部署名称将模型名称与区域城市结合在一起,例如 yolo26n-iowa。在模型 Deploy 标签页上,当该模型在该区域已经有一个部署时,会添加一个数字后缀(例如 yolo26n-iowa-2)。名称在工作区内必须是唯一的——部署一个已存在的名称会返回错误,而不是静默重命名。
部署选项卡(快速部署)#
从模型的 Deploy 标签页进行部署会使用相同的固定资源和自动生成的名称,无需对话框步骤。创建期间,部署会立即出现在区域表格下方的活动部署列表中。
管理端点#
视图模式#
部署列表支持三种视图模式:
| 模式 | 描述 |
|---|---|
| 卡片 | 带有日志、代码示例和预测面板的完整详细信息卡片 |
| 紧凑 | 包含关键指标的较小卡片网格 |
| 表格 | 带有可排序列表头和搜索功能的数据表 |

部署卡片(卡片视图)#
卡片视图中的每个部署卡片显示:
- 表头:名称、区域旗帜、状态徽章,以及可用于当前状态的操作按钮——就绪时可进行替换和停止,已停止时可启动,随时可以删除
- 端点 URL:可复制的 URL,附带指向端点自身 API 参考的链接
- 指标:请求数(24小时)、P95 延迟、错误率,或“尚无流量”
- 健康检查:实时健康指示器,包含延迟和手动刷新功能
- 标签页:
Logs、Code和Predict - 页脚:绑定到该部署的 API 密钥前缀以及它变为就绪状态的日期
- 状态消息:部署失败时的失败原因
URL、指标、健康检查和标签页仅在部署处于就绪状态时才会显示。Logs 标签页显示包含严重性过滤(全部 / 错误)的最近日志条目。Code 标签页显示适用于 Python、JavaScript 和 cURL 且包含你的端点 URL 的现成代码示例,以及供工作区所有者使用的绑定 API 密钥(参见监控)。Predict 标签页提供了一个内联预测面板,用于直接在部署上进行测试。
精简卡片显示旗帜、名称、城市、状态和三个指标。表格视图支持按名称、区域、状态、请求数、P95 和错误排序,并支持按名称、区域和状态搜索。两种视图都保留了删除操作;启动、停止和替换操作可在卡片视图中使用。
替换模型#
替换就绪端点背后的模型而不改变其 URL:
- 在卡片视图中打开部署
- 点击替换模型
- 从同一工作区选择另一个已完成的模型
- 可选:编辑部署名称
- 点击替换模型
当前模型在替换启动期间继续提供服务。替换就绪后,流量将转移到新模型。部署 ID、URL、区域和 API 密钥保持不变;其显示名称仅在你输入新名称时才会改变。如果替换失败,先前的模型和名称将保持活动状态。
替换需要满足以下所有条件,否则将被拒绝:
- 部署处于就绪状态,且没有其他生命周期操作正在进行
- 替换模型拥有权重,并且属于与部署相同的工作区
- 替换模型不是当前已部署的模型
替换会从部署中移除先前的模型。每个端点仅服务一个模型;当你需要同时提供两个模型时,请创建另一个部署。
部署状态#
| 状态 | 描述 |
|---|---|
| 正在创建 | 正在设置部署 |
| 正在部署 | 正在启动容器 |
| 就绪 | 端点已上线并正在接受请求 |
| 正在停止 | 端点正在关闭 |
| 已停止 | 端点已暂停且不可用 |
| Failed(失败) | 部署失败(请查看错误信息) |
端点 URL#
每个端点都有一个唯一的 URL,例如:
https://predict-<deployment-id>-<hash>-<region>.a.run.app
点击复制按钮以复制 URL。点击文档图标以打开端点自身的 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 进行部署:确切的该密钥会被绑定,并且你已经拥有它。通过任何其他方式创建的部署(平台 UI,或以团队成员身份认证的 API 调用)会自动绑定拥有工作区的一个活动密钥 —— 通过部署卡片页脚中显示的密钥前缀来识别它,并向工作区所有者询问其值,因为只有所有者才能查看密钥值(参见API 密钥)。没有绑定密钥的团队成员仍然可以通过浏览器中的平台预测代理运行推理。
删除或停用绑定的 API 密钥不会撤销对端点的直接访问 —— 任何持有密钥字符串的人仍然可以调用端点 URL。失效的是平台预测代理,它会实时检查密钥并报告其不再可用。要完全撤销访问权限,请停止或删除部署;在轮换密钥后,重新创建端点以便它绑定新密钥。
直接端点请求#
将生产请求直接发送到部署卡片上显示的 URL。这些请求不通过平台 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 | 文件 | - | - | 图像或视频文件(除非设置了 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 | 布尔值 | 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 拒绝。
响应格式#
与带有特定任务字段的共享推理相同。
常见问题解答#
端点限制取决于你的方案:
- 免费版:最多 3 个部署
- 专业版:最多 10 个部署
- 企业版:不限部署数量
每个模型仍然可以部署到你的套餐配额内的多个区域。配额计算在拥有模型的的工作区上,因此部署共享模型的团队成员会消耗所有者的配额。达到限制会返回一个错误,要求你先删除现有的部署。
为了实现全球覆盖:
- 部署到多个区域
- 使用负载均衡器或 DNS 路由
- 将用户路由到最近的端点
冷启动时间取决于模型以及端点是否已缩减为零;平台允许闲置端点在报告不健康之前有额外的时间启动。在流量突增之前从部署卡片运行健康检查可以预热实例。
不可以。每个部署都在其部署卡片上显示的生成的端点 URL 上提供流量,该 URL 在部署的整个生命周期内保持稳定 —— 包括跨模型替换。