Embeddings

Einbettungen sind eine numerische Darstellung von Texteingaben, die eine Reihe von einzigartigen Anwendungsfällen ermöglichen, z. B. Clustering, Ähnlichkeitsmessung und Informationsabruf. Eine Einführung finden Sie im Leitfaden zu Einbettungen.

Methode: models.embedContent

Generiert einen Texteinbettungsvektor aus der Eingabe Content mit dem angegebenen Gemini-Embedding-Modell.

Endpunkt

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

Die URL verwendet die Syntax der gRPC-Transcodierung.

Pfadparameter

model string

Erforderlich. Der Ressourcenname des Modells. Diese dient als ID für das Modell.

Dieser Name sollte mit einem Modellnamen übereinstimmen, der von der Methode models.list zurückgegeben wird.

Format: models/{model}. Muss die Form models/{model} haben.

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

Felder
content object (Content)

Erforderlich. Der einzubettende Inhalt. Es werden nur die parts.text-Felder gezählt.

taskType enum (TaskType)

Optional. Optionaler Aufgabentyp, für den die Einbettungen verwendet werden. Kann nur für models/embedding-001 festgelegt werden.

title string

Optional. Optionaler Titel für den Text. Gilt nur, wenn „TaskType“ RETRIEVAL_DOCUMENT ist.

Hinweis: Wenn Sie für RETRIEVAL_DOCUMENT eine title angeben, werden Einbettungen mit höherer Qualität für das Abrufen verwendet.

outputDimensionality integer

Optional. Optionale reduzierte Dimension für die Ausgabe-Embedding. Wenn festgelegt, werden übergroße Werte in der Ausgabe-Embedding am Ende abgeschnitten. Unterstützt nur von neueren Modellen seit 2024. Dieser Wert kann nicht festgelegt werden, wenn Sie das ältere Modell (models/embedding-001) verwenden.

Beispielanfrage

Python

# With Gemini-2 we're launching a new SDK, see this doc for details.
# https://ai.google.dev/gemini-api/docs/migrate

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);

Muschel

curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
    "content": {
    "parts":[{
      "text": "Hello world"}]}, }' 2> /dev/null | head

Antworttext

Die Antwort auf eine EmbedContentRequest.

Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:

Felder
embedding object (ContentEmbedding)

Nur Ausgabe. Die Einbettung, die aus den Eingabeinhalten generiert wurde.

JSON-Darstellung
{
  "embedding": {
    object (ContentEmbedding)
  }
}

Methode: models.batchEmbedContents

Generiert mehrere Einbettungsvektoren aus der Eingabe Content, die aus einer Reihe von Strings besteht, die als EmbedContentRequest-Objekte dargestellt werden.

Endpunkt

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

Die URL verwendet die Syntax der gRPC-Transcodierung.

Pfadparameter

model string

Erforderlich. Der Ressourcenname des Modells. Diese dient als ID für das Modell.

Dieser Name sollte mit einem Modellnamen übereinstimmen, der von der Methode models.list zurückgegeben wird.

Format: models/{model}. Muss die Form models/{model} haben.

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

Felder
requests[] object (EmbedContentRequest)

Erforderlich. Anfragen für den Batch einbetten Das Modell in jeder dieser Anfragen muss mit dem angegebenen Modell BatchEmbedContentsRequest.model übereinstimmen.

Beispielanfrage

Python

# With Gemini-2 we're launching a new SDK, see this doc for details.
# https://ai.google.dev/gemini-api/docs/migrate

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);

Muschel

curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:batchEmbedContents?key=$GOOGLE_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

Antworttext

Die Antwort auf eine BatchEmbedContentsRequest.

Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:

Felder
embeddings[] object (ContentEmbedding)

Nur Ausgabe. Die Einbettungen für jede Anfrage in der Reihenfolge, in der sie in der Batchanfrage angegeben wurden.

JSON-Darstellung
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

Anfrage mit der Content für das einzubettende Modell.

Felder
model string

Erforderlich. Der Ressourcenname des Modells. Diese dient als ID für das Modell.

Dieser Name sollte mit einem Modellnamen übereinstimmen, der von der Methode models.list zurückgegeben wird.

Format: models/{model}

content object (Content)

Erforderlich. Der einzubettende Inhalt. Es werden nur die parts.text-Felder gezählt.

taskType enum (TaskType)

Optional. Optionaler Aufgabentyp, für den die Einbettungen verwendet werden. Kann nur für models/embedding-001 festgelegt werden.

title string

Optional. Optionaler Titel für den Text. Gilt nur, wenn „TaskType“ RETRIEVAL_DOCUMENT ist.

Hinweis: Wenn Sie für RETRIEVAL_DOCUMENT eine title angeben, werden Einbettungen mit höherer Qualität für das Abrufen verwendet.

outputDimensionality integer

Optional. Optionale reduzierte Dimension für die Ausgabe-Embedding. Wenn festgelegt, werden übergroße Werte in der Ausgabe-Embedding am Ende abgeschnitten. Unterstützt nur von neueren Modellen seit 2024. Wenn Sie das ältere Modell (models/embedding-001) verwenden, können Sie diesen Wert nicht festlegen.

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

ContentEmbedding

Eine Liste von Gleitkommazahlen, die ein Einbettungselement darstellen.

Felder
values[] number

Die Einbettungswerte.

JSON-Darstellung
{
  "values": [
    number
  ]
}

TaskType

Art der Aufgabe, für die die Einbettung verwendet wird.

Enums
TASK_TYPE_UNSPECIFIED Nicht festgelegter Wert, der standardmäßig zu einem der anderen Enum-Werte wird.
RETRIEVAL_QUERY Gibt an, dass der angegebene Text eine Abfrage in einer Such-/Abrufeinstellung ist.
RETRIEVAL_DOCUMENT Gibt an, dass der angegebene Text ein Dokument aus dem durchsuchten Korpus ist.
SEMANTIC_SIMILARITY Gibt an, dass der angegebene Text für die Bestimmung der semantischen Textähnlichkeit (Semantic Textual Similarity, STS) verwendet wird.
CLASSIFICATION Gibt an, dass der angegebene Text klassifiziert werden soll.
CLUSTERING Gibt an, dass die Einbettungen für das Clustering verwendet werden.
QUESTION_ANSWERING Gibt an, dass der angegebene Text für die Beantwortung von Fragen verwendet wird.
FACT_VERIFICATION Gibt an, dass der angegebene Text für die Faktenprüfung verwendet wird.