ほとんどのコンテンツは、エンジンが返した瞬間にそのまま公開できます。ですが、そうはいかないものもあります。規制対象の開示、医療上の指示、ブランドを背負う見出し。そうした内容では、顧客から苦情が来てからではなく、公開前に人が翻訳を読み、承認しておきたいはずです。
自動化フローに人の確認を入れる一般的なやり方は、たいてい厄介です。誰かが読むまでリクエストを開いたままにする、自前でレビューキューを作る、翻訳ベンダーのAPIを手作業でつなぎ込む。このステージなら、それをジョブの中で完結できます。humanEdit を有効にすると、非同期ジョブはエンジンを実行したあと、人による確認で一時停止します。対象は自社チームでも外部の専門家でもかまいません。修正内容を受け取るとジョブは再開し、その出力が後続のステージへそのまま引き継がれます。
これは ローカライゼーションパイプライン の第3ステージで、ほかのすべてのステージと同様、非同期ローカライゼーションAPI 経由で作成されたジョブにのみ適用されます。パイプラインが初めてなら、まずは 概要 からご覧ください。
このページの内容
一時停止の仕組み#
コアの翻訳ステップの後、ジョブはAI翻訳を人のレビュー担当者に渡します。レビュー担当者は内容を確認し、そのまま承認するか、修正版を提出します。そこで初めてジョブは続行されます。承認済みまたは修正済みの人の出力が、その後のすべてのステージへの入力となり、最終的にはジョブの outputData になります。
ジョブを数分、数時間、あるいは丸一日止めるとなると、まず気になるのはコストです。何も起きていない間も、開いたままのリクエストがリソースを消費し続けるのではないか。ですが、このステージはそうした仕組みではありません。
待機は接続維持ではなく、イベント駆動です
ワークフローはイベントを受けて再開します。たとえば、ダッシュボードでレビュー担当者が送信する(内部レビュー)、あるいは翻訳プロバイダーからコールバックが返る(外部レビュー)と再開します。短い間隔でポーリングし続けることも、接続を開いたまま保持することもないため、タイムアウトを長く設定してもバックグラウンドで計算リソースは消費しません。ジョブはモデルの応答を待つのと同じように、48時間でも人の対応を待てます。動き続けているのではなく、待機状態に置かれているだけです。
レビューには2つのモードがあり、エンジンごとに選べます。違うのは、実際に読む人が誰かだけです。一時停止、再開、その後のステージへの引き継ぎという挙動はどちらも同じです。
内部レビュー#
自社チームが Lingo.dev ダッシュボード上で翻訳を直接レビューします。保留中のレビューは組織の Human Reviewer ページ(/orgs/<org-id>/human-reviewer)に届き、新しい項目が来るとレビュー担当者に通知されます。レビュー担当者は項目を引き受け、そのまま承認するか、修正版を提出します。ジョブはその出力を受け取るとすぐに再開されます。
すでに誰かが対応中の項目を、別のレビュー担当者が引き受けることはできません。引き受けは排他的です。1つの項目を同時に扱えるのは1人だけなので、2人が同じ翻訳を編集して気づかないうちに上書きし合うことはありません。文字列は、担当者が解放するか送信するまでロックされます。
内部レビューは、新しいエンジンでのデフォルトモードです。チーム内にその言語の知見があり、最終的な表現をしっかりコントロールしたい場合に向いています。第三者を介在させる必要もありません。
権限#
内部レビューは組織内の誰でも使えるわけではありません。Human Reviewer ページは権限で保護されており、レビュー中の翻訳を見られるのは、アクセス権を付与された人だけです。組織管理者はロール(Settings → Roles)からアクセス権を割り当てます。
| 権限 | できること |
|---|---|
翻訳をレビュー(engine:review_translations) | レビューキューを確認して処理できます。保留中の翻訳を引き受け、編集し、そのまま承認するか、修正版を送信できます |
レビューを管理(org:manage_reviews) | 組織全体のすべての内部レビューについて、レビュー履歴とレビュー担当者の統計を確認できます |
この2つの権限は、意図的に分けられています。レビュー担当者に必要なのは 翻訳をレビュー だけです。この1つの権限があれば、引き受け、編集、承認、送信まで一通り行えます。レビューを管理 は運用を監督する人向けで、組織全体の履歴や統計を確認できるようになりますが、それ単体ではキューへのアクセス権は含まれません。レビューもレポートも担当するリードには両方を、キュー対応だけを行う人には前者だけを付与してください。
外部レビュー#
対象ロケールに社内レビュー担当者がいない場合は、代わりに外部プロバイダー経由で、資格を持つプロの翻訳者に翻訳が送られます。ジョブは同じように一時停止し、プロバイダーが修正済みの翻訳を返すと再開されます。コード側を変更する必要はありません。違うのは、誰が文字列を読むかであって、ジョブの振る舞いではありません。
外部レビューには2つのティアがあり、その違いはコンテンツにどれだけの正確さが求められるかです。
| ティア | 最適な用途 |
|---|---|
| Standard | 人の自然な表現を備えた正確な翻訳。マーケティングコピー、UI文字列、ヘルプコンテンツ向け |
| Pro | さらに高い正確性が求められる業務用途。法務、医療、規制対象のコンテンツ向け |
ここは率直にお伝えしておくべき点です。外部レビューの先にいるのは実際の人間の翻訳者であり、それに見合った納期とコストがかかります。より速いモデルではありません。人の判断そのものが必要な場面――規制対象の文面や重要なコピー――に使い、それを必要としない大半のコンテンツにはAIのみの経路を使うのが適切です。
タイムアウト#
人が関わるステージには、AIステージにはないリスクがあります。人がまったく応答しない可能性です。レビュー担当者が休暇中かもしれない、プロバイダーが立て込んでいるかもしれない、項目そのものが見落とされるかもしれない。上限がなければ、ジョブはいつまでも待ち続けてしまいます。
そこで待機時間には上限を設けます。ワークフローが人の出力をどれだけ待つかを設定でき、同じ timeoutHours 設定が両方のレビューモードに適用されます。タイムアウトまでに応答がなければ、このステージは skipped として記録され、ジョブはAI翻訳を最終出力として続行します。デフォルトは 48時間 です。
このコストは明確です。タイムアウトすると、未レビューのAI翻訳がそのまま公開されます。ほとんどのコンテンツでは、これは適切なフォールバックです。いつまでも止まったままのジョブより、公開された翻訳のほうが価値があるからです。ただし、これは現実的なトレードオフでもあります。何があっても人の承認が必要なコンテンツなら、長めのタイムアウトを設定し、スキップ時にアラートを上げてください。レビューはあれば望ましい程度のコンテンツなら、短めのタイムアウトでパイプラインを止めずに進められます。
タイムアウトはジョブ単位ではなく、ステージ単位です
このタイムアウトが制御するのは、このステージが人の出力を待つ時間だけです。ジョブ全体にかかる時間とは独立しています。待機はイベント駆動なので、レビュー担当者の対応が遅い場合に増えるのは最終出力までの待ち時間だけで、バックグラウンドの計算コストではありません。
ステージの有効化#
humanEdit は、ほかのパイプラインステージと同じように設定します。エンジンの Pipeline タブでエンジンレベルのデフォルトを設定し、必要に応じてリクエスト単位で上書きできます。この2層モデル全体については パイプラインを設定する にまとまっています。このステージ固有の設定項目は次のとおりです。
{
"humanEdit": {
"enabled": true,
"provider": "internal",
"tier": "standard",
"timeoutHours": 48
}
}provider でモードを選択します。自社チームなら internal、それ以外は外部プロバイダーです。tier(standard または pro)は外部レビューに適用され、内部レビューでは無視されます。timeoutHours は上のセクションで説明した上限値です。単一の送信だけ上書きしたい場合は、create call の pipelineConfig にこのブロックを渡します。省略した場合、ジョブはエンジンの設定を引き継ぎます。
このステージが実行されると、ジョブ上の stepId: "humanEdit" に、completed、failed、または skipped のステータスで記録されます。これはすべてのステージで共通のステップ記録です。これらの記録の読み方は パイプライン実行を監視する で説明しています。
人の修正内容はエンジンルールからずれることがあります
人間の翻訳者は、glossary、ブランドボイス、または instructions と食い違う表現をすることがあります。設定を暗記しているのではなく、自然で適切な翻訳をしているからです。人の修正内容を自動でエンジンルールに戻したい場合は、次のステージである AI評価 を有効にしてください。これは、実際に出力を生成した人のステージの後でのみ実行されます。
