Embeddings

Einbettungen sind eine numerische Darstellung von Texteingaben, die eine Reihe einzigartiger Anwendungsfälle wie Clustering, Ähnlichkeitsmessung und Informationsabruf eröffnet. Eine Einführung finden Sie im Leitfaden zu Einbettungen.

Methode: models.embedContent

Generiert einen Texteinbettungsvektor aus der Eingabe-Content mithilfe des angegebenen Gemini-Einbettungsmodells.

Endpunkt

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

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. Nur die parts.text-Felder werden 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 der TaskType RETRIEVAL_DOCUMENT ist.

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

outputDimensionality integer

Optional. Optionale reduzierte Dimension für die Ausgabe-Embedding. Wenn festgelegt, werden übermäßig viele Werte in der Ausgabeeinbettung vom Ende abgeschnitten. Wird nur von neueren Modellen seit 2024 unterstützt. Sie können diesen Wert nicht festlegen, wenn Sie das frühere Modell (models/embedding-001) verwenden.

Beispielanfrage

Python

import google.generativeai as genai

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

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 ein 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

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

import google.generativeai as genai

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

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. Dies dient als ID für das zu verwendende 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. Nur die parts.text-Felder werden 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 der TaskType RETRIEVAL_DOCUMENT ist.

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

outputDimensionality integer

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

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

ContentEmbedding

Eine Liste von Gleitkommazahlen, die eine Einbettung 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 wird.
CLUSTERING Gibt an, dass die Einbettungen für das Clustering verwendet werden.
QUESTION_ANSWERING Gibt an, dass der angegebene Text zur Beantwortung der Frage verwendet wird.
FACT_VERIFICATION Gibt an, dass der angegebene Text für die Faktenüberprüfung verwendet wird.