Embeddings

エンベディングは、テキスト入力の数値表現であり、クラスタリング、類似性測定、情報検索など、さまざまな独自のユースケースを開きます。概要については、エンベディング ガイドをご覧ください。

メソッド: models.embedContent

指定された Gemini エンベディング モデルを使用して、入力 Content からテキスト エンベディング ベクトルを生成します。

エンドポイント

投稿 https://generativelanguage.googleapis.com/v1beta/{model=models/*}:embedContent

パスパラメータ

model string

必須。モデルのリソース名。これは、モデルが使用する ID として機能します。

この名前は、models.list メソッドから返されたモデル名と一致する必要があります。

形式: models/{model} 形式は models/{model} です。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

フィールド
content object (Content)

必須。埋め込むコンテンツ。カウントされるのは parts.text フィールドのみです。

taskType enum (TaskType)

省略可。エンベディングが使用されるタスクタイプ(省略可)。以前のモデル(models/embedding-001)ではサポートされていません。

title string

省略可。テキストのタイトル(省略可)。TaskType が RETRIEVAL_DOCUMENT の場合にのみ適用されます。

注: RETRIEVAL_DOCUMENTtitle を指定すると、取得するエンベディングの品質が向上します。

outputDimensionality integer

省略可。出力エンベディングのオプションの縮小ディメンション。設定すると、出力エンベディング内の値が長すぎる場合は、末尾から切り捨てられます。2024 年以降の新しいモデルでのみサポートされます。以前のモデル(models/embedding-001)を使用している場合、この値を設定することはできません。

リクエスト例

PythonNode.jsShell
from google import genai
from google.genai import types

client = genai.Client()
text = "Hello World!"
result = client.models.embed_content(
    model="text-embedding-004",
    contents=text,
    config=types.EmbedContentConfig(output_dimensionality=10),
)
print(result.embeddings)
// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const text = "Hello World!";
const result = await ai.models.embedContent({
  model: "text-embedding-004",
  contents: text,
  config: { outputDimensionality: 10 },
});
console.log(result.embeddings);
curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
    "content": {
    "parts":[{
      "text": "Hello world"}]}, }' 2> /dev/null | head

レスポンスの本文

EmbedContentRequest に対するレスポンス。

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

フィールド
embedding object (ContentEmbedding)

出力専用。入力コンテンツから生成されたエンベディング。

JSON 表現
{
  "embedding": {
    object (ContentEmbedding)
  }
}

メソッド: models.batchEmbedContents

EmbedContentRequest オブジェクトとして表される文字列のバッチで構成される入力 Content から複数のエンベディング ベクトルを生成します。

エンドポイント

投稿 https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

パスパラメータ

model string

必須。モデルのリソース名。これは、モデルが使用する ID として機能します。

この名前は、models.list メソッドから返されたモデル名と一致する必要があります。

形式: models/{model} 形式は models/{model} です。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

フィールド
requests[] object (EmbedContentRequest)

必須。バッチのリクエストを埋め込みます。これらの各リクエストのモデルは、指定されたモデル BatchEmbedContentsRequest.model と一致している必要があります。

リクエスト例

PythonNode.jsShell
from google import genai
from google.genai import types

client = genai.Client()
texts = [
    "What is the meaning of life?",
    "How much wood would a woodchuck chuck?",
    "How does the brain work?",
]
result = client.models.embed_content(
    model="text-embedding-004",
    contents=texts,
    config=types.EmbedContentConfig(output_dimensionality=10),
)
print(result.embeddings)
// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const texts = [
  "What is the meaning of life?",
  "How much wood would a woodchuck chuck?",
  "How does the brain work?",
];
const result = await ai.models.embedContent({
  model: "text-embedding-004",
  contents: texts,
  config: { outputDimensionality: 10 },
});
console.log(result.embeddings);
curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:batchEmbedContents?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"requests": [{
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "What is the meaning of life?"}]}, },
      {
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "How much wood would a woodchuck chuck?"}]}, },
      {
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "How does the brain work?"}]}, }, ]}' 2> /dev/null | grep -C 5 values

レスポンスの本文

BatchEmbedContentsRequest に対するレスポンス。

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

フィールド
embeddings[] object (ContentEmbedding)

出力専用。各リクエストのエンベディング(バッチ リクエストで指定された順序)。

JSON 表現
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

エンベディングするモデルの Content を含むリクエスト。

フィールド
model string

必須。モデルのリソース名。これは、モデルが使用する ID として機能します。

この名前は、models.list メソッドから返されたモデル名と一致する必要があります。

形式: models/{model}

content object (Content)

必須。埋め込むコンテンツ。カウントされるのは parts.text フィールドのみです。

taskType enum (TaskType)

省略可。エンベディングが使用されるタスクタイプ(省略可)。以前のモデル(models/embedding-001)ではサポートされていません。

title string

省略可。テキストのタイトル(省略可)。TaskType が RETRIEVAL_DOCUMENT の場合にのみ適用されます。

注: RETRIEVAL_DOCUMENTtitle を指定すると、取得するエンベディングの品質が向上します。

outputDimensionality integer

省略可。出力エンベディングのオプションの縮小ディメンション。設定すると、出力エンベディング内の値が長すぎる場合は、末尾から切り捨てられます。2024 年以降の新しいモデルでのみサポートされます。以前のモデル(models/embedding-001)を使用している場合は、この値を設定できません。

JSON 表現
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

ContentEmbedding

エンベディングを表す浮動小数点数のリスト。

フィールド
values[] number

エンベディング値。

JSON 表現
{
  "values": [
    number
  ]
}

TaskType

エンベディングが使用されるタスクのタイプ。

列挙型
TASK_TYPE_UNSPECIFIED 未設定の値。デフォルトでは他の列挙値のいずれかになります。
RETRIEVAL_QUERY 指定したテキストが検索 / 取得設定のクエリであることを指定します。
RETRIEVAL_DOCUMENT 指定したテキストが検索対象のコーパスのドキュメントであることを指定します。
SEMANTIC_SIMILARITY 指定したテキストが STS で使用されることを指定します。
CLASSIFICATION 指定したテキストを分類することを指定します。
CLUSTERING エンベディングをクラスタリングに使用することを指定します。
QUESTION_ANSWERING 指定したテキストが質問応答に使用されることを指定します。
FACT_VERIFICATION 指定したテキストが事実確認に使用されることを指定します。
CODE_RETRIEVAL_QUERY 指定したテキストがコード取得に使用されることを指定します。