Embeddings

方法:model.embedContent

透過指定輸入 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_DOCUMENT 指定 title 可提升擷取品質的嵌入品質。

outputDimensionality integer

選用設定。輸出內容嵌入項目的縮減維度 (選用)。如果設定了這項政策,輸出嵌入中的過多值會從結尾遭到截斷。自 2024 年起開始支援的新模型,且較早的模型 (models/embedding-001) 無法指定這個值。

要求範例

Python


text = "Hello World!"
result = genai.embed_content(
    model="models/text-embedding-004", content=text, output_dimensionality=10
)
print(result["embedding"])

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
  model: "text-embedding-004",
});

const result = await model.embedContent("Hello world!");

console.log(result.embedding);

回應主體

EmbedContentRequest 的回應。

如果成功,回應主體即會包含具有以下結構的資料:

欄位
embedding object (ContentEmbedding)

僅供輸出。從輸入內容產生的嵌入。

JSON 表示法
{
  "embedding": {
    object (ContentEmbedding)
  }
}

方法:model.batchEmbedContents

在同步呼叫中,透過特定模型產生多個嵌入。

端點

則貼文 https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

路徑參數

model string

必要欄位。模型的資源名稱。這可做為模型使用的 ID。

這個名稱應與 models.list 方法傳回的模型名稱相符。

格式:models/{model} 格式為 models/{model}

要求主體

要求主體的資料會採用以下結構:

欄位
requests[] object (EmbedContentRequest)

必要欄位。批次嵌入要求。這些要求中的模型必須符合指定的 BatchEmbedContentsRequest.model

要求範例

Python

texts = [
    "What is the meaning of life?",
    "How much wood would a woodchuck chuck?",
    "How does the brain work?",
]
result = genai.embed_content(
    model="models/text-embedding-004", content=texts, output_dimensionality=10
)
print(result)

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
  model: "text-embedding-004",
});

function textToRequest(text) {
  return { content: { role: "user", parts: [{ text }] } };
}

const result = await model.batchEmbedContents({
  requests: [
    textToRequest("What is the meaning of life?"),
    textToRequest("How much wood would a woodchuck chuck?"),
    textToRequest("How does the brain work?"),
  ],
});

console.log(result.embeddings);

回應主體

BatchEmbedContentsRequest 的回應。

如果成功,回應主體即會包含具有以下結構的資料:

欄位
embeddings[] object (ContentEmbedding)

僅供輸出。每個要求的嵌入順序,與批次要求中提供的順序相同。

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

EmbedContentRequest

包含用於嵌入模型的 Content 的要求。

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

必要欄位。模型的資源名稱。這可做為模型使用的 ID。

這個名稱應與 models.list 方法傳回的模型名稱相符。

格式:models/{model}

content object (Content)

必要欄位。要嵌入的內容。只有 parts.text 欄位會納入計算。

taskType enum (TaskType)

選用設定。供嵌入項目使用的選用工作類型。只能為 models/embedding-001 設定。

title string

選用設定。選填的文字標題。只有在 TaskType 為 RETRIEVAL_DOCUMENT 時適用。

注意:為 RETRIEVAL_DOCUMENT 指定 title 可提升擷取品質的嵌入品質。

outputDimensionality integer

選用設定。輸出內容嵌入項目的縮減維度 (選用)。如果設定了這項政策,輸出嵌入中的過多值會從結尾遭到截斷。自 2024 年起開始支援的新模型,且較早的模型 (models/embedding-001) 無法指定這個值。

ContentEmbedding

代表嵌入的浮點值清單。

JSON 表示法
{
  "values": [
    number
  ]
}
欄位
values[] number

嵌入值。

TaskType

會使用嵌入功能的工作類型。

列舉
TASK_TYPE_UNSPECIFIED 未設定值,預設為其他列舉值。
RETRIEVAL_QUERY 指定指定文字是搜尋/擷取設定中的查詢。
RETRIEVAL_DOCUMENT 指定文字是搜尋語料庫中的文件。
SEMANTIC_SIMILARITY 指定用於 STS 的文字。
CLASSIFICATION 表示會分類指定的文字。
CLUSTERING 指定嵌入將用於分群。
QUESTION_ANSWERING 指定用於回答問題的文字。
FACT_VERIFICATION 指定將用於事實驗證的文字。