|
ドキュメント
デモを予約プラットフォーム
プラットフォームMCPCLIAPI
ワークフロー
ガイド変更履歴

ようこそ

  • 概要
  • 認証
  • エラーとステータスコード
  • Webhookシグネチャ

ローカライゼーション

  • 概要
  • ジョブを作成
  • 翻訳対象外のキーをロックする
  • ジョブグループを追跡
  • 単一ジョブを取得
  • ジョブ一覧
  • Webhook配信
  • リアルタイム進捗(WebSocket)

パイプライン

  • 概要
  • ローカライズ前のAI編集
  • 人によるレビュー
  • AI評価(ポストエディット)
  • 自然なコピーに言い換える
  • 逆翻訳チェック
  • パイプラインを設定
  • パイプライン実行を確認する

プロビジョニング

  • 概要
  • プロビジョニングジョブを作成
  • ソースの種類
  • AIが抽出するもの
  • Webhook配信
  • ライブ進行状況(WebSocket)

同期

  • Localize
  • Recognize

エンジン管理

  • エンジン提案

パイプライン実行を確認する

有効になっている各パイプラインステージはジョブに1件ずつ記録を残すため、動いたと信じるのではなく、実際に何が実行されたかを確認できます。

いくつかのpipelineステージを有効にしたとします。たとえば、ソースを整えるpre-editや、ズレを検出するback-translationです。するとジョブが completed_with_warnings で返ってきました。どのステージで止まったのか。人手のレビューは本当に行われたのか、それともタイムアウトしたのか。追加したステージはいくらかかったのか。ロケールごとにAIと人手の複数ステップが走るパイプラインは、まさにブラックボックス化しやすい仕組みです。結果だけが返ってきて、その途中のステージがきちんと仕事をしたかどうかは、信じるしかない状態になりがちです。

でも、ここでは信じる必要はありません。有効な各ステージは、ジョブのsteps[]配列に1件ずつ記録を書き込みます。どのステージか、どんなステータスだったか、いくらかかったか、いつ始まっていつ終わったか。各ステージが何をしたかを読むのであって、実行されたと鵜呑みにするわけではありません。 それがこのページの役割です。

パイプラインが初めてなら、まずはパイプライン概要からどうぞ。

このページの内容

  • 記録はどこにあるか
  • steps 配列
  • stepId とステージの対応
  • ステップのステータス: completed、failed、skipped
  • ステップの失敗がジョブ警告になる仕組み

記録はどこにあるか#

steps[]配列は、ローカライゼーションジョブのフィールドです。別で取得する必要はなく、ジョブを読むたびに一緒に返ってきます。

text
GET /jobs/localization/:jobId

APIキーは X-API-Key ヘッダーで認証します。完全なエンドポイント、job status の値、そして outputData ペイロードについては、単一ジョブのページで説明しています。このページで扱うのは、そのレスポンスの中の1フィールド、つまりステージごとの実行履歴と、そこから読み取れることです。

ルールはシンプルです。取得したすべてのジョブには、すでにそのジョブ自身の監査ログが含まれています。パイプラインを有効にしていないジョブでも、core localization が常に走るため、記録は1件あります。任意ステージを2つ有効にすれば、記録は3件です。配列はパイプラインに応じて増え、ステージごとに1エントリずつ、実行順で並びます。

steps 配列#

steps[]の各エントリは、1つのステージの記録です。実行内容を監査するときに見るフィールドは次のとおりです。どのステージか、どんな結果だったか、いくらかかったか、そしていつ動いたかです。

json
"steps": [
  {
    "stepId": "preEdit",
    "type": "action",
    "status": "completed",
    "errorMessage": null,
    "costUsd": 0.0012,
    "externalRefType": null,
    "externalRefId": null,
    "externalRefUrl": null,
    "createdAt": "2026-03-16T10:30:01.000Z",
    "startedAt": "2026-03-16T10:30:01.000Z",
    "completedAt": "2026-03-16T10:30:02.000Z"
  },
  {
    "stepId": "localize",
    "type": "action",
    "status": "completed",
    "errorMessage": null,
    "costUsd": 0.0184,
    "externalRefType": null,
    "externalRefId": null,
    "externalRefUrl": null,
    "createdAt": "2026-03-16T10:30:02.000Z",
    "startedAt": "2026-03-16T10:30:02.000Z",
    "completedAt": "2026-03-16T10:30:05.000Z"
  }
]
フィールド説明
stepIdこの記録がどのパイプラインステージのものかを示します。下の対応表を参照してください。
typeステップの種類です。自動ステージなら action になります。
statusこのステージの状態です。completed、failed、または skipped のいずれかで、ジョブ全体のステータスとは独立しています。
errorMessageこのステージが失敗した理由です。status が failed でない限り、null です。
costUsdこのステージにかかったコスト(USD)です。JSONの数値、または null です。
externalRefType、externalRefId、externalRefUrlサードパーティに作業を渡すステージ向けの外部レコードへのポインターです。該当するのは human review ステージです。完全自動のステージでは null になります。
createdAt、startedAt、completedAtステージが作成され、引き受けられ、完了した時刻です。

各レコードには outputData フィールドもあります。ここにはそのステージが生成したコンテンツが入り、形はジョブの outputData と同じです。このペイロードは監査ログではなく翻訳そのものなので、ジョブレベルの outputData とあわせて 単一ジョブのページで説明しています。パイプラインが何をしたかを見るなら、読むべきなのは上のフィールドです。

これらのレコードからは、単一のoutputDataブロブでは見えないことが2つわかります。まず、コストがジョブ合計ではなくステージごとに明細化されること。だから back-translation を有効にして請求額が動いたときも、どのステージが押し上げたのかを正確に確認できます。次に、時間もステージ単位で見えること。humanEdit レコードで startedAt と completedAt の間が何時間も空いていれば、待ち時間の原因がエンジンではなく人手だったとわかります。

steps は位置ではなく stepId で読む

レコードは実行順に並びますが、配列の位置で参照してはいけません。どのステージが走るかは有効にした設定次第なので、位置はジョブごとに安定しないからです。ステージは stepId(steps.find(s => s.stepId === "humanEdit"))で特定してください。stepId の値セットは固定ですが、実際にそのジョブに入るのは有効にしたステージだけです。

stepId とステージの対応#

各 stepId は1つのパイプラインステージを表します。以下は、レコードの値と、それが指すステージ、そのステージの動作を説明するページの対応表です。

stepIdステージ
preEditローカライゼーション前のAI編集
localizecore localization
humanEditローカライゼーション後の人手レビュー
postEditローカライゼーション後のAI評価
rephrase自然なコピーへのリフレーズ
backTranslation逆翻訳チェック

localize は、パイプラインの有無にかかわらずすべてのジョブに現れる唯一の stepId です。これは コア翻訳ステップ で、常に実行されます。残りの5つは、そのステージをエンジンまたはリクエストで有効にしたときにだけ現れます。

ステップのステータス: completed、failed、skipped#

各ステップは独自の status を持ち、ジョブ全体や他のステップとは独立して設定されます。値は3つです。

ステップの status意味
completedそのステージは実行され、出力を生成しました。
failedそのステージは実行されたものの、エラーで終了しました。理由は errorMessage に入ります。
skippedそのステージは有効だったものの、今回は完了まで実行されませんでした。

completed と failed はそのままの意味です。少し立ち止まって見るべきなのは skipped で、これは "disabled" と同じではありません。そもそも有効にしていないステージは、レコード自体が作られません。一方で skipped レコードは、そのステージが有効だったにもかかわらず、パイプラインのルールに従って今回は通過したことを意味します。いちばんわかりやすいのは human review です。レビュー期間が人手からの応答なしで終了すると、そのステージは skipped と記録され、AI翻訳がそのまま最終結果として引き継がれます。レコードは残るので、スキップは見えないままにはなりません。

ステップのステータスはジョブのステータスではない

failed のステップがあっても、ジョブが必ず failed になるわけではありません。多くの任意ステージは非クリティカルです。1つが失敗しても、そのレコードは failed になり、エンジンは最後の正常な出力を引き継いで、ジョブ自体は完全な outputData で終了します。その結果としてのジョブステータス completed_with_warnings については、単一ジョブのページで説明しています。ステップのステータスが示すのは1つのステージで何が起きたかであり、ジョブのステータスが示すのは翻訳を受け取れたかどうかです。

ステップの失敗がジョブ警告になる仕組み#

非クリティカルなステージが失敗すると、その失敗は同時に2か所に現れます。見ているのは同じ出来事の2つの表示です。steps[] レコードでは failed と errorMessage になり、これが詳細ビューです。同じ失敗は、ジョブ最上位の warnings 配列にも1エントリとして現れます。こちらは、ステータス処理コードが分岐に使う要約ビューです。

json
{
  "id": "ljb_A1b2C3d4E5f6G7h8",
  "status": "completed_with_warnings",
  "outputData": { "title": "Hallo" },
  "warnings": [
    { "step": "backTranslation", "message": "Back-translation check did not complete" }
  ],
  "steps": [
    { "stepId": "localize", "type": "action", "status": "completed", "errorMessage": null, "costUsd": 0.0184, "completedAt": "2026-03-16T10:30:05.000Z" },
    { "stepId": "backTranslation", "type": "action", "status": "failed", "errorMessage": "Back-translation check did not complete", "costUsd": 0.0031, "completedAt": "2026-03-16T10:30:11.000Z" }
  ]
}

各 warnings エントリは { step, message } で、そこでの step は失敗したレコードにある stepId と同じ値です。つまり2つの配列は対応しています。warnings は何が問題だったかの短い一覧で、各項目の詳細を見る場所が steps[] です。ロケールを人手確認に回すべきか判断するなら warnings を読み、対応する steps[] レコードを見れば、その背景にある errorMessage、コスト、タイミングまで追えます。

これが completed_with_warnings の仕組みです。コア翻訳は成功しているので、使える outputData はあります。ただし少なくとも1つの非クリティカルなステージで failed レコードと対応する警告が残っています。出力はそのまま出荷可能なものとして扱い、警告は可視化すべき品質シグナルとして扱ってください。翻訳そのものが存在しないのは、ジョブの status が failed のときだけです。この判断と完全な job status テーブルについては、単一ジョブのページにあります。

ステージ全体の健全性は別の画面で見る

steps[] が答えるのは、「このジョブでパイプラインは何をしたか」です。多くのジョブをまたいだ傾向、たとえば pre-edit がどれくらい失敗するか、back-translation がどれくらい翻訳を修正するかを見たいなら、それは集計の話であり、ジョブ単位のレスポンスではなく Reports ページで確認します。ジョブごとの記録はここ、集計はあちらです。

次のステップ#

単一ジョブを取得する
これらの steps が含まれる完全なジョブレスポンスと、分岐に使う job status の値
パイプラインを設定する
エンジン単位またはリクエスト単位でどのステージを実行するかを決め、それに応じて表示される steps も決まります
Reports
すべてのジョブを横断したステージ成功率とスループットの集計

このページは役に立ちましたか?

Max PrilutskiyMax Prilutskiy·更新済み 約2か月前·2分で読めます