「Bring Your Own Engine (BYOエンジン)」機能を使用すると、外部の機械翻訳 (MT) エンジンをPhraseに統合し、他のMTプロバイダーと同様に翻訳ワークフローで使用できます。
BYOエンジンは以下のような場合に適しています。
-
ドメイン固有のMTモデルを持つ企業。
-
独自のクライアントエンジンや優先的に使用するAIスタックを持つLSP。
-
特定のエンジン (Gemini、社内LLMなど) の使用を義務付ける社内ポリシーを持つ組織。
カスタムトレーニングされたエンジンを使用したり、翻訳を社内LLMやMTプロバイダーにルーティングしたりすることで、品質、プライバシー、コストを完全に管理しながら、Phraseの翻訳メモリ (TM)、用語集、QPS、およびCATエディターのメリットを継続的に享受できます。
BYOエンジンを使用できる場所
統合が完了すると、BYOエンジンを事前翻訳に使用できるようになります。Phrase Language AIプロファイルで設定し、そのプロファイルを使用して、Phrase TMSプロジェクト、Phrase Portal、Phrase Stringsプロジェクト、Phrase Studio、およびAPI経由のPhrase Language AIから事前翻訳を行います。
BYOエンジンの設定
アダプターの構築
-
組織は、軽量なAPIアダプターを構築およびテストする必要があります。このアダプターにより、Phraseとエンジン間の通信が可能になります。
アダプターは以下をサポートする必要があります。
-
翻訳リクエスト
-
言語ペアのサポート
-
エンジンステータスの確認 (Phraseがステータスリクエストを送信)
-
-
基盤となるインフラストラクチャ (MTエンジンまたはLLM) は、組織によってホストおよび保守される必要があります。
-
Phraseがそのインフラストラクチャに接続するには権限が必要です。
-
アダプターは、同じセグメント数と順序で翻訳を返す必要があります。
MTプロファイルへのエンジンの統合
APIアダプターが実装およびデプロイされると、BYOエンジンがPhrase Language AIで利用可能になり、MTプロファイルで選択してプロジェクトに割り当てることができるようになります。
BYOエンジンをMTプロファイルに接続するには:
-
Phrase Language AIのMTプロファイルページから、MTエンジンを接続をクリックします。
ページが表示されます。
-
BYOエンジンを選択します。
BYOエンジンの設定ページが開きます。
-
を入力します。
-
(HTTPヘッダーまたはクライアント資格情報(OAuth 2.0))に応じて資格情報を提供します。
-
するかどうかを選択します。デフォルトで有効になっています。
過去30日以内に翻訳されたセグメントを再利用することで、トラフィックを削減し、翻訳の応答を高速化します。これはリクエストの処理性能を最適化するためのものであり、翻訳コストを削減するものではありません。通常は有効のままにし、基盤となるエンジンアダプターを開発中の場合にのみ無効にしてください。
-
必要に応じて、にエンジンの追加情報を入力します。
-
接続を検証をクリックして、エンジン統合が機能するかどうかを確認します。
-
追加をクリックします。
これで、プロファイルでエンジンを有効にできるようになります。
ヒント
BYOエンジンを使用する場合、MTプロファイルで他のエンジンを有効にしないでください。これにより、事前翻訳にBYOエンジンが確実に選択されます。
BYOエンジンを編集
BYOエンジンを編集するには、エンジンタイルの編集アイコンをクリックします。
BYOエンジンを削除
BYOエンジンを削除するには:
FAQ
|
Q: |
なぜステータスリクエストが必要なのですか?これはPhraseからエンジンに送信されるものですか、それとも顧客側で処理されることが想定されていますか? |
|
A: |
Phraseは、エンジンが動作するかどうかを確認するためにリクエストを送信します。 |
|
Q: |
1つのリクエストでは、 |
|
A: |
同期呼び出しと非同期呼び出しの両方で、1〜500セグメントを受け付けます。実際には、エディターからの同期呼び出しには1つのセグメントが含まれますが、APIやバッチワークフロー(事前翻訳、分析)では最大500まで送信できます。非同期フローでも同じ制限が適用され、ジョブの送信と結果の取得が分離されるだけです。非同期のタイムアウトは約30分です。アダプターがリクエストを拒否した場合、同期から非同期へ自動的にフォールバックすることはありません。Phraseの動作(セグメント数、エンジンの検証テスト、再試行、制限時間)について詳しくは、BYOエンジンガイドを参照してください。 |
|
Q: |
用語集のすべての用語がリクエストで送信されますか、それとも一部のみですか? |
|
A: |
用語集のすべての用語が送信されます。 |
|
Q: |
LLMを組み込むことはできますか? |
|
A: |
ラッパーを使用すれば可能であるはずです。エンジンがスキーマで定義された通りにセグメントを返す限り、Phraseは特定のエンジンやLLMを必要としません。 |
|
Q: |
カスタム品質評価(QE)は可能ですか? |
|
A: |
サードパーティのQEはサポートされていません。 |
|
Q: |
タグはどのように処理されますか? |
|
A: |
Phraseが受け取るコンテンツは前処理されます。HTMLタグはマークに変換され、それらのマークはそのまま渡されます。 |
|
Q: |
非同期方式のみを実装することはできますか?Phraseのすべての機能(事前翻訳、エディターなど)で正しく動作しますか? |
|
A: |
いいえ、同期方式と非同期方式の両方(理想的にはすべてのエンドポイント)を実装する必要があります。同期エンドポイントは例えばエディターで使用され、非同期エンドポイントは事前翻訳などの領域で使用されます。 |
|
Q: |
エンジンが同時に複数のリクエストを受け取った場合、どうなりますか? |
|
A: |
エンジンはこれに対応できる必要があります。すべてのエンドポイント、特に非同期エンドポイントで、同時実行時の処理とスレッドの安全性を確保してください。 |
|
Q: |
リクエストメタデータはどのように機能しますか? |
|
A: |
BYOエンジン設定でカスタムラベルとして構成されるリクエストメタデータは、リクエストがアダプターに到達する前に値が確定する動的プレースホルダー( |
|
Q: |
セグメントメタデータはどのように機能しますか? |
|
A: |
現在は、スキーマの一部である必要があります。 |
|
Q: |
MT処理中、BYOEはRAGを使用してコンテキストを取得しますか? |
|
A: |
いいえ、BYOEはRAGを使用しません。ユーザーはTMを活用してどのセグメントが翻訳されるかを決定できますが、それらはMTプロセス自体の中では使用されません。これは、MTエンジンがRAGを介してTMデータを取り込むように特別に設計されている必要があり、BYOEのシナリオではエンジンの構築方法や構成方法を制御できないためです。 |
アダプタースキーマリファレンス
アダプターは、以下のフィールド名および列挙値と完全に一致するレスポンスを返す必要があります。不一致があると、アダプター自体が200 OKレスポンスを返した場合でも、Phraseから汎用的なINTERNAL_ERRORが返されます。
-
POST /statusは、okまたはnot_okのいずれかの厳密な小文字の列挙値を持つstatusフィールドを返す必要があります。例:{ "status": "ok" } -
POST /languagesは、各要素にsourceLanguageフィールドとtargetLanguageフィールドが含まれるlanguagePairs配列(キャメルケース)を返す必要があります。例:{ "languagePairs": [ { "sourceLanguage": "en", "targetLanguage": "es" } ] } -
POST /translateおよびGET /translateAsyncResult/{id}は、最上位のsourceLanguageフィールドとtargetLanguageフィールド、さらに各セグメントにtextフィールド(そのまま返された原文テキスト)とtranslatedTextフィールドの両方が含まれるsegments配列を返す必要があります。translatedTextのみを返すか、異なるキー名を使用すると、デシリアライズに失敗します。 -
POST /translateAsyncは、レスポンスにidフィールドのみを必要とします。statusフィールドはこのレスポンススキーマの一部ではなく、存在しても無視されます。 -
GET /translateAsyncStatus/{id}は、statusフィールドに次の3つの列挙値のいずれかを返す必要があります。処理中のジョブにはrunning、正常に完了したジョブにはdone、失敗したジョブにはfailedを使用します。失敗したジョブの場合、オプションのdetailフィールドで失敗の内容を記述できます。値の例:{ "status": "running" }、{ "status": "done" }、{ "status": "failed", "detail":"Description of translation failure" }