このトピックでは、AI_TRANSLATE 関数を使用して大規模言語モデル (LLM) でテキストを翻訳する方法について説明します。
制限事項
Ververica Runtime (VVR) 11.4 以降でのみサポートされています。
AI_TRANSLATE 文の Flink 演算子のスループットは、モデルプラットフォームによるレート制限の対象となります。トラフィックがプラットフォームの制限を超えると、Flink ジョブでバックプレッシャーが発生し、この演算子がボトルネックになります。厳しいレート制限は、タイムアウトエラーを引き起こし、ジョブが再起動する原因となる可能性があります。
構文
AI_TRANSLATE(
MODEL => MODEL <MODEL NAME>,
INPUT => <INPUT COLUMN NAME>,
SOURCE_LANG => <SOURCE LANGUAGE>,
TARGET_LANG => <TARGET LANGUAGE>
)入力パラメーター
パラメーター | データ型 | 説明 |
MODEL <MODEL NAME> | MODEL | 登録済みのモデルサービスの名前。詳細については、「モデル設定」をご参照のうえ、モデルサービスを登録してください。 注:このモデルの出力タイプは VARIANT である必要があります。 |
<INPUT COLUMN NAME> | STRING | モデルが分析するソーステキスト。 |
<SOURCE LANGUAGE> | STRING | ソース言語の英語の略語。たとえば、中国語の場合は 現在サポートされているソース言語は次のとおりです: 中国語 (zh)、英語 (en)、日本語 (ja)、韓国語 (ko)、フランス語 (fr)、ドイツ語 (de)、スペイン語 (es)、ロシア語 (ru)、アラビア語 (ar)、ポルトガル語 (pt) 注:実際にサポートされる言語タイプは、モデルによって決まります。 注:この入力パラメーターは定数である必要があります。 |
<TARGET LANGUAGE> | STRING | ターゲット言語の英語の略語。たとえば、中国語に翻訳する場合は、 現在サポートされているターゲット言語は次のとおりです: 中国語 (zh)、英語 (en)、日本語 (ja)、韓国語 (ko)、フランス語 (fr)、ドイツ語 (de)、スペイン語 (es)、ロシア語 (ru)、アラビア語 (ar)、ポルトガル語 (pt) 注:実際にサポートされる言語タイプは、モデルによって決まります。 注:この入力パラメーターは定数である必要があります。 |
出力
パラメーター | データ型 | 説明 |
translated_text | STRING | 翻訳されたテキスト。 |
detected_language | STRING | 検出された言語。 |
例
テストデータ
id | content |
1 | I like Flink very much. It's so fast! |
テスト文
この SQL 文の例では、Qwen-Plus モデルを作成し、AI_TRANSLATE 関数を使用して入力テキストを翻訳します。
CREATE TEMPORARY MODEL general_model
INPUT (`input` STRING)
OUTPUT (`content` VARIANT)
WITH (
'provider' = 'openai-compat',
'endpoint'='<YOUR ENDPOINT>',
'apiKey' = '<YOUR KEY>',
'model' = 'qwen-plus'
);
CREATE TEMPORARY VIEW infos(id, content)
AS VALUES (1, 'I like Flink very much. It''s so fast!');
-- Use positional argument to call AI_TRANSLATE
SELECT id, translated_text, detected_language
FROM infos,
LATERAL TABLE(
AI_TRANSLATE(
MODEL general_model,
content,
'auto',
'zh'
));
-- Use named argument to call AI_TRANSLATE
SELECT id, translated_text, detected_language
FROM infos,
LATERAL TABLE(
AI_TRANSLATE(
MODEL => MODEL general_model,
INPUT => content,
SOURCE_LANG =>'auto',
TARGET_LANG => 'zh'
));
出力結果
id | translated_text | detected_language |
1 | I like Flink very much. It's very fast! | en |