「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}は、3つの列挙値のいずれかを使用してstatusフィールドを返す必要があります。処理中のジョブにはrunning、正常に完了したジョブにはdone、失敗したジョブにはfailedを使用します。失敗したジョブの場合、オプションのdetailフィールドで失敗の内容を記述できます。値の例:{ "status": "running" }、{ "status": "done" }、{ "status": "failed", "detail":"Description of translation failure" }