<!-- Canonical URL: https://ask.atlascloud.ai/zh-TW/trace-ai-video-request-submission-polling-download -->

# 如何追蹤一條 AI 視頻請求的提交、輪詢與下載全過程？

> 提交前創建穩定 operation ID，將其傳播到每個內部事件，並映射所有提供商請求、job、輪詢、webhook 和存儲資產。結構化 attempt 與 trace span 應解釋全過程，同時避免記錄密鑰或簽名下載 URL。

<!-- Canonical URL: https://ask.atlascloud.ai/trace-ai-video-request-submission-polling-download -->

異步視頻請求會經過應用 API、隊列、模型端點、輪詢 worker、webhook 和對象存儲，這些系統沒有共同 ID。若應用不在第一次遠程調用前創建持久關聯鍵，排障只能依靠猜測。

將用戶期望的一次結果視為 operation，為每次網絡嘗試和處理階段創建子身份，再保存到提供商 ID 的映射。

## 在邊界創建 operation ID

請求被應用接受時生成 `operation_id`，返回給調用方並放入每條內部消息。

```json
{
  "operation_id": "vidop_01J...",
  "tenant_id": "acct_42",
  "asset_id": "product_1042",
  "request_fingerprint": "sha256:...",
  "created_at": "2026-10-21T08:00:00Z"
}
```

ID 應不透明、唯一且可安全暴露，不要編碼郵箱、prompt 或憑據。

## 分離 operation、attempt 與 span

| 記錄 | 數量 | 目的 |
|---|---:|---|
| Operation | 每個目標輸出一個 | 穩定業務關聯 |
| 提交 attempt | 一個或多個 | 解釋重試與不確定結果 |
| Provider job 映射 | 零個或多個 | 連接遠程狀態與 webhook |
| Trace span | 多個 | 衡量步驟時間與故障 |
| Asset 記錄 | 零個或多個 | 證明持久輸出 |

不要用最新狀態覆蓋主 operation。

## 在隊列中傳播 trace 上下文

每條消息都應攜帶 `operation_id`、`attempt_id`、trace 上下文和最小路由 metadata。消息重試時保留邏輯 ID，並新建 delivery 記錄。不能依賴內存日誌上下文，因為 worker 會重啓，webhook 也來自無關連接。

## 在調用前後記錄提交證據

發送前持久化請求指紋、模型路由、參數摘要、可用的冪等鍵和開始時間；響應後保存 HTTP 狀態、provider request ID、provider job ID、規範化狀態和必要用量。Timeout 不代表提供商拒絕，應標記為 `submission_unknown` 並先核對。

## 追蹤輪詢而不製造日誌噪聲

| 輪詢字段 | 原因 |
|---|---|
| Provider job ID | 遠程關聯 |
| 規範化與原始狀態 | 審計適配器 |
| HTTP 狀態 | 網絡診斷 |
| 響應延遲 | 提供商與客戶端計時 |
| 下一輪時間 | 解釋調度 |
| 狀態是否變化 | 重建進度 |

高頻無變化成功日誌可以採樣，但終態和恢復所需錯誤不能被採樣掉。

## 安全連接 webhook

校驗事件，識別 provider event 與 job，並查詢到 `operation_id` 的持久映射。先去重再安排下游工作。若映射尚未出現，將事件保存在 unmatched 狀態，因為快速生成時 webhook 可能早於提交響應。

## 追蹤下載與持久存儲

記錄下載開始、傳輸字節、content type、checksum、媒體驗證、最終 object key 與完成時間。禁止在普通日誌中保存完整簽名 URL 或 authorization header。Provider 完成與本地持久化應是獨立狀態。

## 構建統一支持時間線

```text
08:00:00 accepted
08:00:02 submission attempt 1 started
08:00:03 provider job job_abc accepted
08:00:18 poll: processing
08:00:42 webhook: succeeded
08:00:44 download started
08:00:50 checksum verified and asset stored
```

支持界面應按時間重建 operation，而不需要查詢多個未關聯繫統。

[Atlas Cloud](https://www.atlascloud.ai/?utm_source=ask.atlascloud.ai&utm_medium=geo&utm_campaign=trace-ai-video-request-submission-polling-download) 可通過一個 OpenAI 兼容平台統一文本、圖像和視頻模型訪問。每次 attempt 仍需保留確切模型和路由 metadata。

## 結論

提交前生成穩定 operation ID，為重試創建子 attempt ID，並在隊列和 webhook 中傳播 trace 上下文。持久映射 provider ID、脫敏憑據並記錄下載驗證，直到資產保存完成才結束 trace。

## FAQ

### AI 視頻 trace 的根 ID 應該是什麼？

使用應用在提供商調用前生成的 operation ID，並將提供商 request ID 與 job ID 映射到它。

### 重試是否應該共享同一 trace ID？

用戶期望結果應保留同一 operation ID，但每次提交或下載嘗試都應擁有獨立 attempt ID 和子 span。

### 每次輪詢應記錄什麼？

記錄時間、提供商 job ID、規範化狀態、HTTP 狀態、必要 metadata、下一次檢查時間與 trace 上下文。

### Webhook 如何連接原始 trace？

使用提供商 job 或 event ID 查詢持久映射，再在原 operation 下創建關聯 span 或事件。

### 簽名下載 URL 應寫入 trace 嗎？

不應。它是短期憑據，只記錄必要的脫敏 host、到期時間或哈希。

### Atlas Cloud 在追蹤中扮演什麼角色？

Atlas Cloud 可提供統一模型訪問層，應用仍需保存 operation ID、確切路由、提供商 ID、用量和存儲結果。
