テキスト エンベディング API は、テキストデータを数値ベクトルに変換します。これらのベクトル表現は、対象となる単語の意味論的意味とコンテキストを取り込むように設計されています。
サポートされているモデル:
英語モデル | 多言語モデル |
---|---|
textembedding-gecko@001 |
textembedding-gecko-multilingual@001 |
textembedding-gecko@003 |
text-multilingual-embedding-002 |
text-embedding-004 |
|
text-embedding-preview-0815 |
構文
curl
PROJECT_ID = PROJECT_ID REGION = us-central1 MODEL_ID = MODEL_ID curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:predict -d \ '{ "instances": [ ... ], "parameters": { ... } }'
Python
PROJECT_ID = PROJECT_ID REGION = us-central1 MODEL_ID = MODEL_ID import vertexai from vertexai.language_models import TextEmbeddingModel vertexai.init(project=PROJECT_ID, location=REGION) model = TextEmbeddingModel.from_pretrained(MODEL_ID) embeddings = model.get_embeddings(...)
パラメータ リスト
パラメータ | |
---|---|
|
各インスタンスは、エンベディングされる 1 つのテキストを表します。 |
|
エンベディングを生成するテキスト。 |
|
省略可: true に設定すると、入力テキストが切り捨てられます。false に設定すると、入力テキストがモデルでサポートされている最大長を超えている場合、エラーが返されます。デフォルトは true です。 |
|
省略可: 出力エンベディングのサイズを指定するために使用します。設定すると、指定されたサイズを超えた分の出力エンベディングが切り捨てられます。 |
リクエストの本文
{
"instances": [
{
"task_type": "RETRIEVAL_DOCUMENT",
"title": "document title",
"content": "I would like embeddings for this text!"
},
]
}
パラメータ | |
---|---|
|
エンベディングを生成するテキスト。 |
|
省略可: モデルがより優れたエンベディングを生成できるように、予定されているダウンストリームの用途を伝えるために使用されます。空白のままにすると、デフォルトの
textembedding-gecko@001 モデルでは、 タスクタイプの詳細については、エンベディングのタスクタイプを選択するをご覧ください。 |
|
省略可: モデルがより優れたエンベディングを生成できるようにするために使用されます。 |
taskType
次の表に、task_type
パラメータ値とそのユースケースを示します。
task_type |
説明 |
---|---|
RETRIEVAL_QUERY |
指定したテキストが検索または取得設定のクエリであることを指定します。 |
RETRIEVAL_DOCUMENT |
指定したテキストが検索または取得設定のドキュメントであることを指定します。 |
SEMANTIC_SIMILARITY |
指定したテキストが意味的テキスト類似性(STS)で使用されることを指定します。 |
CLASSIFICATION |
エンベディングが分類に使用されることを指定します。 |
CLUSTERING |
エンベディングがクラスタリングに使用されることを指定します。 |
QUESTION_ANSWERING |
クエリ エンベディングが質問への回答に使用されることを指定します。ドキュメント側には RETRIEVAL_DOCUMENT を使用します。 |
FACT_VERIFICATION |
クエリ エンベディングが事実確認に使用されることを指定します。 |
CODE_RETRIEVAL_QUERY |
クエリ エンベディングが Java と Python のコード取得に使用されることを指定します。 |
取得タスク:
クエリ: 入力テキストが検索クエリであることを示すには、task_type=RETRIEVAL_QUERY
を使用します。コーパス: 入力テキストが検索対象のドキュメント コレクションの一部であることを示すには、task_type=RETRIEVAL_DOCUMENT
を使用します。
類似タスク:
意味的類似性: 全体的な意味の類似性を評価するには、両方の入力テキストに task_type= SEMANTIC_SIMILARITY
を使用します。
レスポンスの本文
{
"predictions": [
{
"embeddings": {
"statistics": {
"truncated": boolean,
"token_count": integer
},
"values": [ number ]
}
}
]
}
レスポンス要素 | 説明 |
---|---|
embeddings |
入力テキストから生成された結果。 |
statistics |
入力テキストから計算された統計値。 |
truncated |
入力テキストが最大許容トークン数より長く、切り捨てられたかどうかを示します。 |
tokenCount |
入力テキストのトークンの数。 |
values |
values フィールドには、入力テキストの単語に対応するエンベディング ベクトルが含まれます。 |
レスポンスの例
{
"predictions": [
{
"embeddings": {
"values": [
0.0058424929156899452,
0.011848051100969315,
0.032247550785541534,
-0.031829461455345154,
-0.055369812995195389,
...
],
"statistics": {
"token_count": 4,
"truncated": false
}
}
}
]
}
例
テキスト文字列を埋め込む
基本的なユースケース
次の例は、テキスト文字列のエンベディングを取得する方法を示しています。
REST
環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- TEXT: エンベディングを生成するテキスト。上限:
textembedding-gecko@001
を除くすべてのモデルで、5 テキスト(1 テキストあたり最大 2,048 トークン)。textembedding-gecko@001
の最大入力トークン長は 3,072 です。 - AUTO_TRUNCATE:
false
に設定した場合、テキストがトークンの上限を超えると、リクエストが失敗します。デフォルト値はtrue
です。
HTTP メソッドと URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict
リクエストの本文(JSON):
{ "instances": [ { "content": "TEXT"} ], "parameters": { "autoTruncate": AUTO_TRUNCATE } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。容量を節約するために、values
は切り捨てられています。
generateContent
メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。ユーザーが認識するレイテンシを短縮するには、streamGenerateContent
メソッドを使用して、生成時にレスポンスをストリーミングします。- マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます(例:
gemini-1.5-flash
、gemini-1.0-pro-vision
)。このサンプルでは、他のモデルもサポートされている場合があります。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Go の設定手順を完了してください。詳細については、Vertex AI Go API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
上級者向けのユースケース
次の例では、上級者向け機能をいくつか示します。
task_type
とtitle
を使用してエンベディングの品質を改善します。- パラメータを使用して API の動作を制御します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- TEXT: エンベディングを生成するテキスト。上限: 5 テキスト(1 テキストあたり最大 3,072 トークン)。
- TASK_TYPE: モデルがより優れたエンベディングを生成できるように、予定されているダウンストリームの用途を伝えるために使用されます。
- TITLE: モデルがより優れたエンベディングを生成できるようにするために使用されます。
- AUTO_TRUNCATE:
false
に設定した場合、テキストがトークンの上限を超えると、リクエストが失敗します。デフォルト値はtrue
です。 - OUTPUT_DIMENSIONALITY: 出力エンベディングのサイズを指定するために使用します。設定すると、指定されたサイズを超えた分の出力エンベディングが切り捨てられます。
HTTP メソッドと URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/textembedding-gecko@003:predict
リクエストの本文(JSON):
{ "instances": [ { "content": "TEXT", "task_type": "TASK_TYPE", "title": "TITLE" }, ], "parameters": { "autoTruncate": AUTO_TRUNCATE, "outputDimensionality": OUTPUT_DIMENSIONALITY } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/textembedding-gecko@003:predict"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/textembedding-gecko@003:predict" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。容量を節約するために、values
は切り捨てられています。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Go の設定手順を完了してください。詳細については、Vertex AI Go API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
サポートされているテキスト言語
すべてのテキスト エンベディング モデルは英語テキストをサポートし、同テキストで評価されています。textembedding-gecko-multilingual@001
モデルと text-multilingual-embedding-002
モデルは、さらに次の言語をサポートし、それらの言語で評価されています。
- 評価対象の言語:
Arabic (ar)
、Bengali (bn)
、English (en)
、Spanish (es)
、German (de)
、Persian (fa)
、Finnish (fi)
、French (fr)
、Hindi (hi)
、Indonesian (id)
、Japanese (ja)
、Korean (ko)
、Russian (ru)
、Swahili (sw)
、Telugu (te)
、Thai (th)
、Yoruba (yo)
、Chinese (zh)
- 対応している言語:
Afrikaans
、Albanian
、Amharic
、Arabic
、Armenian
、Azerbaijani
、Basque
、Belarusiasn
、Bengali
、Bulgarian
、Burmese
、Catalan
、Cebuano
、Chichewa
、Chinese
、Corsican
、Czech
、Danish
、Dutch
、English
、Esperanto
、Estonian
、Filipino
、Finnish
、French
、Galician
、Georgian
、German
、Greek
、Gujarati
、Haitian Creole
、Hausa
、Hawaiian
、Hebrew
、Hindi
、Hmong
、Hungarian
、Icelandic
、Igbo
、Indonesian
、Irish
、Italian
、Japanese
、Javanese
、Kannada
、Kazakh
、Khmer
、Korean
、Kurdish
、Kyrgyz
、Lao
、Latin
、Latvian
、Lithuanian
、Luxembourgish
、Macedonian
、Malagasy
、Malay
、Malayalam
、Maltese
、Maori
、Marathi
、Mongolian
、Nepali
、Norwegian
、Pashto
、Persian
、Polish
、Portuguese
、Punjabi
、Romanian
、Russian
、Samoan
、Scottish Gaelic
、Serbian
、Shona
、Sindhi
、Sinhala
、Slovak
、Slovenian
、Somali
、Sotho
、Spanish
、Sundanese
、Swahili
、Swedish
、Tajik
、Tamil
、Telugu
、Thai
、Turkish
、Ukrainian
、Urdu
、Uzbek
、Vietnamese
、Welsh
、West Frisian
、Xhosa
、Yiddish
、Yoruba
、Zulu
。
モデル バージョン
モデルの安定版を使用する場合は、モデルのバージョン番号を指定します(例: text-embedding-004
)。安定版は、後続の安定版のリリース日から 6 か月間利用できます。
次の表に、利用可能なモデルの安定版を示します。
モデル名 | リリース日 | 廃止日 |
---|---|---|
text-embedding-004 | 2024 年 5 月 14 日 | 未定。 |
text-multilingual-embedding-002 | 2024 年 5 月 14 日 | 未定。 |
textembedding-gecko@003 | 2023 年 12 月 12 日 | 2025 年 5 月 14 日 |
textembedding-gecko-multilingual@001 | 2023 年 11 月 2 日 | 2025 年 5 月 14 日 |
textembedding-gecko@002 (リグレッションが発生していますが、引き続きサポートされます) |
2023 年 11 月 2 日 | 2025 年 4 月 9 日 |
textembedding-gecko@001 (リグレッションが発生していますが、引き続きサポートされます) |
2023 年 6 月 7 日 | 2025 年 4 月 9 日 |
multimodalembedding@001 | 2024 年 2 月 12 日 | 未定。 |
詳細については、モデルのバージョンとライフサイクルをご覧ください。
次のステップ
詳細なドキュメントについては、以下をご覧ください。