テキスト エンベディング API は、テキストデータを数値ベクトルに変換します。これらのベクトル表現は、対象となる単語の意味論的意味とコンテキストを取り込むように設計されています。
サポートされているモデル:
テキスト エンベディングは、次のモデルを使用して取得できます。
| モデル名 | 説明 | 出力の次元 | シーケンスの最大長 | サポートされているテキスト言語 |
|---|---|---|---|---|
gemini-embedding-001 |
英語、多言語、コードタスクで最先端のパフォーマンスを実現します。text-embedding-005 や text-multilingual-embedding-002 などの以前の専門モデルを統合し、それぞれのドメインでより優れたパフォーマンスを実現します。詳しくは、技術レポートをご覧ください。 |
最大 3,072 | 2,048 トークン | サポートされているテキスト言語 |
text-embedding-005 |
英語とコードのタスクに特化しています。 | 最大 768 | 2,048 トークン | 英語 |
text-multilingual-embedding-002 |
多言語タスクに特化しています。 | 最大 768 | 2,048 トークン | サポートされているテキスト言語 |
エンベディングの品質を高めるには、最高レベルのパフォーマンスを提供するように設計された大規模モデルの gemini-embedding-001 を使用します。
構文
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(...)
パラメータ リスト
| 最上位のフィールド | |
|---|---|
|
次のフィールドを含むオブジェクトのリスト。
|
|
次のフィールドを含むオブジェクト。
|
instance フィールド |
|
|---|---|
|
エンベディングを生成するテキスト。 |
|
省略可: モデルがより優れたエンベディングを生成できるように、予定されているダウンストリームの用途を伝えるために使用されます。空白のままにすると、デフォルトの
タスクタイプの詳細については、エンベディングのタスクタイプを選択するをご覧ください。 |
|
省略可: モデルがより優れたエンベディングを生成できるようにするために使用されます。 |
task_type
次の表に、task_type パラメータ値とそのユースケースを示します。
task_type |
説明 |
|---|---|
RETRIEVAL_QUERY |
指定したテキストが検索または取得設定のクエリであることを指定します。ドキュメント側には RETRIEVAL_DOCUMENT を使用します。 |
RETRIEVAL_DOCUMENT |
指定したテキストが検索または取得設定のドキュメントであることを指定します。 |
SEMANTIC_SIMILARITY |
指定したテキストが意味的テキスト類似性(STS)で使用されることを指定します。 |
CLASSIFICATION |
エンベディングが分類に使用されることを指定します。 |
CLUSTERING |
エンベディングがクラスタリングに使用されることを指定します。 |
QUESTION_ANSWERING |
クエリ エンベディングが質問への回答に使用されることを指定します。ドキュメント側には RETRIEVAL_DOCUMENT を使用します。 |
FACT_VERIFICATION |
クエリ エンベディングが事実確認に使用されることを指定します。ドキュメント側には RETRIEVAL_DOCUMENT を使用します。 |
CODE_RETRIEVAL_QUERY |
クエリ エンベディングが Java と Python のコード取得に使用されることを指定します。ドキュメント側には RETRIEVAL_DOCUMENT を使用します。 |
取得タスク:
クエリ: 入力テキストが検索クエリであることを示すには、task_type=RETRIEVAL_QUERY を使用します。コーパス: 入力テキストが検索対象のドキュメント コレクションの一部であることを示すには、task_type=RETRIEVAL_DOCUMENT を使用します。
類似タスク:
意味的類似性: 全体的な意味の類似性を評価するには、両方の入力テキストに task_type= SEMANTIC_SIMILARITY を使用します。
parameters フィールド |
|
|---|---|
|
省略可: true に設定すると、入力テキストが切り捨てられます。false に設定すると、入力テキストがモデルでサポートされている最大長を超えている場合、エラーが返されます。デフォルトは true です。 |
|
省略可: 出力エンベディングのサイズを指定するために使用します。設定すると、指定されたサイズを超えた分の出力エンベディングが切り捨てられます。 |
リクエストの本文
{
"instances": [
{
"task_type": "RETRIEVAL_DOCUMENT",
"title": "document title",
"content": "I would like embeddings for this text!"
},
]
}
レスポンスの本文
{
"predictions": [
{
"embeddings": {
"statistics": {
"truncated": boolean,
"token_count": integer
},
"values": [ number ]
}
}
]
}
| レスポンスの要素 | |
|---|---|
|
次のフィールドを含むオブジェクトのリスト。
|
embeddings フィールド |
|
|---|---|
|
|
|
入力テキストから計算された統計値。以下が含まれます:
|
レスポンスの例
{
"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 です。gemini-embedding-001の場合、各リクエストに含めることができる入力テキストは 1 つだけです。詳細については、テキスト エンベディングの上限をご覧ください。 - AUTO_TRUNCATE:
falseに設定した場合、テキストがトークンの上限を超えると、リクエストが失敗します。デフォルト値はtrueです。
HTTP メソッドと URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-embedding-001: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/gemini-embedding-001: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/gemini-embedding-001:predict" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。容量を節約するために、values は切り捨てられています。
generateContentメソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。ユーザーが認識するレイテンシを短縮するには、streamGenerateContentメソッドを使用して、生成時にレスポンスをストリーミングします。- マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます(例:
gemini-2.0-flash)。このサンプルでは、他のモデルもサポートされている場合があります。
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 に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
サポートされているテキスト言語
すべてのテキスト エンベディング モデルは英語テキストをサポートし、同テキストで評価されています。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。
gemini-embedding-001 モデルは次の言語をサポートしています。
Arabic、Bengali、Bulgarian、Chinese (Simplified and Traditional)、Croatian、Czech、Danish、Dutch、English、Estonian、Finnish、French、German、Greek、Hebrew、Hindi、Hungarian、Indonesian、Italian、Japanese、Korean、Latvian、Lithuanian、Norwegian、Polish、Portuguese、Romanian、Russian、Serbian、Slovak、Slovenian、Spanish、Swahili、Swedish、Thai、Turkish、Ukrainian、Vietnamese、Afrikaans、Amharic、Assamese、Azerbaijani、Belarusian、Bosnian、Catalan、Cebuano、Corsican、Welsh、Dhivehi、Esperanto、Basque、Persian、Filipino (Tagalog)、Frisian、Irish、Scots Gaelic、Galician、Gujarati、Hausa、Hawaiian、Hmong、Haitian Creole、Armenian、Igbo、Icelandic、Javanese、Georgian、Kazakh、Khmer、Kannada、Krio、Kurdish、Kyrgyz、Latin、Luxembourgish、Lao、Malagasy、Maori、Macedonian、Malayalam、Mongolian、Meiteilon (Manipuri)、Marathi、Malay、Maltese、Myanmar (Burmese)、Nepali、Nyanja (Chichewa)、Odia (Oriya)、Punjabi、Pashto、Sindhi、Sinhala (Sinhalese)、Samoan、Shona、Somali、Albanian、Sesotho、Sundanese、Tamil、Telugu、Tajik、Uyghur、Urdu、Uzbek、Xhosa、Yiddish、Yoruba、Zulu。
モデル バージョン
現在の安定版モデルを使用するには、モデルのバージョン番号(gemini-embedding-001 など)を指定します。バージョン番号のないモデルを指定することはおすすめしません。これは、別のモデルへの以前のポインタにすぎず、安定していないためです。
詳細については、モデルのバージョンとライフサイクルをご覧ください。
次のステップ
詳細なドキュメントについては、以下をご覧ください。