Embeddings

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

Im Gegensatz zu generativen KI-Modellen, die neue Inhalte erstellen, ist das Gemini Embedding-Modell nur dazu gedacht, das Format Ihrer Eingabedaten in eine numerische Darstellung umzuwandeln. Google ist zwar dafür verantwortlich, ein Einbettungsmodell bereitzustellen, das das Format Ihrer Eingabedaten in das angeforderte numerische Format umwandelt, die Nutzer behalten jedoch die volle Verantwortung für die von ihnen eingegebenen Daten und die resultierenden Einbettungen. Durch die Nutzung des Gemini Embedding-Modells bestätigen Sie, dass Sie über die erforderlichen Rechte für die von Ihnen hochgeladenen Inhalte verfügen. Erstellen Sie keine Inhalte, durch die die Rechte anderer, zum Beispiel Rechte an geistigem Eigentum oder das Recht auf Privatsphäre, verletzt werden. Ihre Nutzung dieses Dienstes unterliegt der Richtlinie zur unzulässigen Nutzung von generativer KI und den Google-Nutzungsbedingungen.

Methode: models.embedContent

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

Endpunkt

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

Pfadparameter

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}. Es hat die Form models/{model}.

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. Wird auf älteren Modellen (models/embedding-001) nicht unterstützt.

title string

Optional. Ein optionaler Titel für den Text. Gilt nur, wenn TaskType RETRIEVAL_DOCUMENT ist.

Hinweis: Wenn Sie einen title für RETRIEVAL_DOCUMENT angeben, erhalten Sie Einbettungen mit höherer Qualität für den Abruf.

outputDimensionality integer

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

Beispielanfrage

Python

from google import genai
from google.genai import types

client = genai.Client()
text = "Hello World!"
result = client.models.embed_content(
    model="gemini-embedding-001",
    contents=text,
    config=types.EmbedContentConfig(output_dimensionality=10),
)
print(result.embeddings)

Node.js

// 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: "gemini-embedding-001",
  contents: text,
  config: { outputDimensionality: 10 },
});
console.log(result.embeddings);

Ok

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

text := "Hello World!"
outputDim := int32(10)
contents := []*genai.Content{
	genai.NewContentFromText(text, genai.RoleUser),
}
result, err := client.Models.EmbedContent(ctx, "gemini-embedding-001", 
	contents, &genai.EmbedContentConfig{
		OutputDimensionality: &outputDim,
})
if err != nil {
	log.Fatal(err)
}

embeddings, err := json.MarshalIndent(result.Embeddings, "", "  ")
if err != nil {
	log.Fatal(err)
}
fmt.Println(string(embeddings))

Muschel

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-001:embedContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-001",
     "content": {
     "parts":[{
     "text": "What is the meaning of life?"}]}
    }'

Antworttext

Wenn der Vorgang erfolgreich abgeschlossen wurde, enthält der Antworttext eine Instanz von EmbedContentResponse.

Methode: models.batchEmbedContents

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

Endpunkt

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

Pfadparameter

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}. Es hat die Form models/{model}.

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

Felder
requests[] object (EmbedContentRequest)

Erforderlich. Einbetten von Anfragen für den Batch Das Modell in jeder dieser Anfragen muss mit dem Modell übereinstimmen, das BatchEmbedContentsRequest.model angegeben wurde.

Beispielanfrage

Python

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="gemini-embedding-001",
    contents=texts,
    config=types.EmbedContentConfig(output_dimensionality=10),
)
print(result.embeddings)

Node.js

// 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: "gemini-embedding-001",
  contents: texts,
  config: { outputDimensionality: 10 },
});
console.log(result.embeddings);

Ok

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

contents := []*genai.Content{
	genai.NewContentFromText("What is the meaning of life?", genai.RoleUser),
	genai.NewContentFromText("How much wood would a woodchuck chuck?", genai.RoleUser),
	genai.NewContentFromText("How does the brain work?", genai.RoleUser),
}

outputDim := int32(10)
result, err := client.Models.EmbedContent(ctx, "gemini-embedding-001", contents, &genai.EmbedContentConfig{
	OutputDimensionality: &outputDim,
})
if err != nil {
	log.Fatal(err)
}

embeddings, err := json.MarshalIndent(result.Embeddings, "", "  ")
if err != nil {
	log.Fatal(err)
}
fmt.Println(string(embeddings))

Muschel

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-001:batchEmbedContents" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"requests": [{
      "model": "models/gemini-embedding-001",
      "content": {
      "parts":[{
        "text": "What is the meaning of life?"}]}, },
      {
      "model": "models/gemini-embedding-001",
      "content": {
      "parts":[{
        "text": "How much wood would a woodchuck chuck?"}]}, },
      {
      "model": "models/gemini-embedding-001",
      "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 derselben Reihenfolge wie in der Batch-Anfrage.

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

Methode: models.asyncBatchEmbedContent

Stellt einen Batch von models.embedContent-Anfragen für die Batchverarbeitung in die Warteschlange. Wir haben einen models.batchEmbedContents-Handler in GenerativeService, aber er wurde synchronisiert. Um Verwirrung zu vermeiden, nennen wir sie Async.

Endpunkt

post https://generativelanguage.googleapis.com/v1beta/{batch.model=models/*}:asyncBatchEmbedContent >
>

Pfadparameter

batch.model string

Erforderlich. Der Name des Model, der zum Generieren der Vervollständigung verwendet werden soll.

Format: models/{model}. Sie hat die Form models/{model}.

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

Felder
batch.name string

Nur Ausgabe. ID. Ressourcenname des Batches.

Format: batches/{batchId}.

batch.displayName string

Erforderlich. Der benutzerdefinierte Name dieses Batches.

batch.inputConfig object (InputEmbedContentConfig)

Erforderlich. Eingabekonfiguration der Instanzen, auf denen die Batchverarbeitung ausgeführt wird.

batch.output object (EmbedContentBatchOutput)

Nur Ausgabe. Die Ausgabe der Batchanfrage.

batch.createTime string (Timestamp format)

Nur Ausgabe. Der Zeitpunkt, zu dem der Batch erstellt wurde.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

batch.endTime string (Timestamp format)

Nur Ausgabe. Der Zeitpunkt, zu dem die Batchverarbeitung abgeschlossen wurde.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

batch.updateTime string (Timestamp format)

Nur Ausgabe. Der Zeitpunkt, zu dem der Batch zuletzt aktualisiert wurde.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

batch.batchStats object (EmbedContentBatchStats)

Nur Ausgabe. Statistiken zum Batch.

batch.state enum (BatchState)

Nur Ausgabe. Der Status des Batches.

batch.priority string (int64 format)

Optional. Die Priorität des Batches. Batches mit einem höheren Prioritätswert werden vor Batches mit einem niedrigeren Prioritätswert verarbeitet. Negative Werte sind zulässig. Der Standardwert ist 0.

Antworttext

Wenn der Vorgang erfolgreich abgeschlossen wurde, enthält der Antworttext eine Instanz von Operation.

EmbedContentRequest

Anfrage mit dem 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. Es werden nur die parts.text-Felder gezählt.

taskType enum (TaskType)

Optional. Optionaler Aufgabentyp, für den die Einbettungen verwendet werden. Wird auf älteren Modellen (models/embedding-001) nicht unterstützt.

title string

Optional. Ein optionaler Titel für den Text. Gilt nur, wenn TaskType RETRIEVAL_DOCUMENT ist.

Hinweis: Wenn Sie einen title für RETRIEVAL_DOCUMENT angeben, erhalten Sie Einbettungen mit höherer Qualität für den Abruf.

outputDimensionality integer

Optional. Optionale reduzierte Dimension für die Ausgabe-Einbettung. Wenn festgelegt, werden übermäßige Werte in der Ausgabeeinbettung am Ende abgeschnitten. Wird nur von neueren Modellen ab 2024 unterstützt. 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
}

EmbedContentResponse

Die Antwort auf eine EmbedContentRequest.

Felder
embedding object (ContentEmbedding)

Nur Ausgabe. Die aus den Eingabeinhalten generierte Einbettung.

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

ContentEmbedding

Eine Liste von Gleitkommazahlen, die ein Embedding 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 auf einen der anderen Enum-Werte gesetzt wird.
RETRIEVAL_QUERY Gibt an, dass der angegebene Text eine Anfrage 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 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 für die Beantwortung von Fragen verwendet wird.
FACT_VERIFICATION Gibt an, dass der angegebene Text für die Faktenprüfung verwendet wird.
CODE_RETRIEVAL_QUERY Gibt an, dass der angegebene Text für den Codeabruf verwendet wird.

EmbedContentBatch

Eine Ressource, die einen Batch von EmbedContent-Anfragen darstellt.

Felder
model string

Erforderlich. Der Name des Model, der zum Generieren der Vervollständigung verwendet werden soll.

Format: models/{model}.

name string

Nur Ausgabe. ID. Ressourcenname des Batches.

Format: batches/{batchId}.

displayName string

Erforderlich. Der benutzerdefinierte Name dieses Batches.

inputConfig object (InputEmbedContentConfig)

Erforderlich. Eingabekonfiguration der Instanzen, auf denen die Batchverarbeitung ausgeführt wird.

output object (EmbedContentBatchOutput)

Nur Ausgabe. Die Ausgabe der Batchanfrage.

createTime string (Timestamp format)

Nur Ausgabe. Der Zeitpunkt, zu dem der Batch erstellt wurde.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

endTime string (Timestamp format)

Nur Ausgabe. Der Zeitpunkt, zu dem die Batchverarbeitung abgeschlossen wurde.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

updateTime string (Timestamp format)

Nur Ausgabe. Der Zeitpunkt, zu dem der Batch zuletzt aktualisiert wurde.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

batchStats object (EmbedContentBatchStats)

Nur Ausgabe. Statistiken zum Batch.

state enum (BatchState)

Nur Ausgabe. Der Status des Batches.

priority string (int64 format)

Optional. Die Priorität des Batches. Batches mit einem höheren Prioritätswert werden vor Batches mit einem niedrigeren Prioritätswert verarbeitet. Negative Werte sind zulässig. Der Standardwert ist 0.

JSON-Darstellung
{
  "model": string,
  "name": string,
  "displayName": string,
  "inputConfig": {
    object (InputEmbedContentConfig)
  },
  "output": {
    object (EmbedContentBatchOutput)
  },
  "createTime": string,
  "endTime": string,
  "updateTime": string,
  "batchStats": {
    object (EmbedContentBatchStats)
  },
  "state": enum (BatchState),
  "priority": string
}

InputEmbedContentConfig

Konfiguriert die Eingabe für die Batchanfrage.

Felder
source Union type
Erforderlich. Die Quelle der Eingabe. Für source ist nur einer der folgenden Werte zulässig:
fileName string

Der Name des File, der die Eingabeanfragen enthält.

requests object (InlinedEmbedContentRequests)

Die Anfragen, die im Batch verarbeitet werden sollen.

JSON-Darstellung
{

  // source
  "fileName": string,
  "requests": {
    object (InlinedEmbedContentRequests)
  }
  // Union type
}

InlinedEmbedContentRequests

Die Anfragen, die im Batch verarbeitet werden sollen, sofern sie als Teil der Batcherstellungsanfrage angegeben werden.

Felder
requests[] object (InlinedEmbedContentRequest)

Erforderlich. Die Anfragen, die im Batch verarbeitet werden sollen.

JSON-Darstellung
{
  "requests": [
    {
      object (InlinedEmbedContentRequest)
    }
  ]
}

InlinedEmbedContentRequest

Die Anfrage, die im Batch verarbeitet werden soll.

Felder
request object (EmbedContentRequest)

Erforderlich. Die Anfrage, die im Batch verarbeitet werden soll.

metadata object (Struct format)

Optional. Die Metadaten, die der Anfrage zugeordnet werden sollen.

JSON-Darstellung
{
  "request": {
    object (EmbedContentRequest)
  },
  "metadata": {
    object
  }
}

EmbedContentBatchOutput

Die Ausgabe einer Batchanfrage. Dieser Wert wird im Feld AsyncBatchEmbedContentResponse oder EmbedContentBatch.output zurückgegeben.

Felder
output Union type
Die Ausgabe der Batchanfrage. Für output ist nur einer der folgenden Werte zulässig:
responsesFile string

Nur Ausgabe. Die Datei-ID der Datei mit den Antworten. Die Datei ist eine JSONL-Datei mit einer einzelnen Antwort pro Zeile. Die Antworten sind EmbedContentResponse-Nachrichten im JSON-Format. Die Antworten werden in derselben Reihenfolge wie die Eingabeanfragen verfasst.

inlinedResponses object (InlinedEmbedContentResponses)

Nur Ausgabe. Die Antworten auf die Anfragen im Batch. Wird zurückgegeben, wenn der Batch mit Inline-Anfragen erstellt wurde. Die Antworten werden in derselben Reihenfolge wie die Eingabeanfragen ausgegeben.

JSON-Darstellung
{

  // output
  "responsesFile": string,
  "inlinedResponses": {
    object (InlinedEmbedContentResponses)
  }
  // Union type
}

InlinedEmbedContentResponses

Die Antworten auf die Anfragen im Batch.

Felder
inlinedResponses[] object (InlinedEmbedContentResponse)

Nur Ausgabe. Die Antworten auf die Anfragen im Batch.

JSON-Darstellung
{
  "inlinedResponses": [
    {
      object (InlinedEmbedContentResponse)
    }
  ]
}

InlinedEmbedContentResponse

Die Antwort auf eine einzelne Anfrage im Batch.

Felder
metadata object (Struct format)

Nur Ausgabe. Die Metadaten, die der Anfrage zugeordnet sind.

output Union type
Die Ausgabe der Anfrage. Für output ist nur einer der folgenden Werte zulässig:
error object (Status)

Nur Ausgabe. Der Fehler, der beim Verarbeiten der Anfrage aufgetreten ist.

response object (EmbedContentResponse)

Nur Ausgabe. Die Antwort auf die Anfrage.

JSON-Darstellung
{
  "metadata": {
    object
  },

  // output
  "error": {
    object (Status)
  },
  "response": {
    object (EmbedContentResponse)
  }
  // Union type
}

EmbedContentBatchStats

Statistiken zum Batch.

Felder
requestCount string (int64 format)

Nur Ausgabe. Die Anzahl der Anfragen im Batch.

successfulRequestCount string (int64 format)

Nur Ausgabe. Die Anzahl der Anfragen, die erfolgreich verarbeitet wurden.

failedRequestCount string (int64 format)

Nur Ausgabe. Die Anzahl der Anfragen, die nicht verarbeitet werden konnten.

pendingRequestCount string (int64 format)

Nur Ausgabe. Die Anzahl der Anfragen, die noch nicht verarbeitet wurden.

JSON-Darstellung
{
  "requestCount": string,
  "successfulRequestCount": string,
  "failedRequestCount": string,
  "pendingRequestCount": string
}