Embeddings

Les embeddings sont une représentation numérique de l'entrée de texte qui ouvre un certain nombre de cas d'utilisation uniques, tels que le clustering, la mesure de la similarité et la récupération d'informations. Pour obtenir une présentation, consultez le guide sur les embeddings.

Méthode: models.embedContent

Génère un vecteur d'embedding de texte à partir de l'entrée Content à l'aide du modèle d'embedding Gemini spécifié.

Point de terminaison

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

Paramètres de chemin d'accès

model string

Obligatoire. Nom de la ressource du modèle. Il s'agit d'un ID que le modèle doit utiliser.

Ce nom doit correspondre à un nom de modèle renvoyé par la méthode models.list.

Format: models/{model} Il se présente sous la forme models/{model}.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Champs
content object (Content)

Obligatoire. Contenu à intégrer. Seuls les champs parts.text seront comptabilisés.

taskType enum (TaskType)

Facultatif. Type de tâche facultatif pour lequel les embeddings seront utilisés. Ne peut être défini que pour models/embedding-001.

title string

Facultatif. Titre facultatif du texte. Ne s'applique que lorsque TaskType est défini sur RETRIEVAL_DOCUMENT.

Remarque: Spécifier un title pour RETRIEVAL_DOCUMENT permet d'obtenir des représentations vectorielles continues de meilleure qualité pour la récupération.

outputDimensionality integer

Facultatif. Dimension réduite facultative pour l'embedding de sortie. Si cette option est définie, les valeurs excessives de l'embedding de sortie sont tronquées à partir de la fin. Compatible avec les modèles plus récents depuis 2024 uniquement. Vous ne pouvez pas définir cette valeur si vous utilisez l'ancien modèle (models/embedding-001).

Exemple de requête

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

Coquille Rose

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

Corps de la réponse

Réponse à un EmbedContentRequest.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Champs
embedding object (ContentEmbedding)

Uniquement en sortie. Représentation vectorielle continue générée à partir du contenu saisi.

Représentation JSON
{
  "embedding": {
    object (ContentEmbedding)
  }
}

Méthode: models.batchEmbedContents

Génère plusieurs vecteurs d'embedding à partir de l'entrée Content, qui consiste en un lot de chaînes représentées sous forme d'objets EmbedContentRequest.

Point de terminaison

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

Paramètres de chemin d'accès

model string

Obligatoire. Nom de la ressource du modèle. Il s'agit d'un ID que le modèle doit utiliser.

Ce nom doit correspondre à un nom de modèle renvoyé par la méthode models.list.

Format: models/{model} Il se présente sous la forme models/{model}.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Champs
requests[] object (EmbedContentRequest)

Obligatoire. Intégrez les requêtes pour le lot. Le modèle de chacune de ces requêtes doit correspondre au modèle spécifié dans BatchEmbedContentsRequest.model.

Exemple de requête

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

Coquille Rose

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

Corps de la réponse

Réponse à un BatchEmbedContentsRequest.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Champs
embeddings[] object (ContentEmbedding)

Uniquement en sortie. Les représentations vectorielles continues de chaque requête, dans le même ordre que celui indiqué dans la requête groupée.

Représentation JSON
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

Requête contenant le Content du modèle à intégrer.

Champs
model string

Obligatoire. Nom de la ressource du modèle. Il s'agit d'un ID que le modèle doit utiliser.

Ce nom doit correspondre à un nom de modèle renvoyé par la méthode models.list.

Format : models/{model}

content object (Content)

Obligatoire. Contenu à intégrer. Seuls les champs parts.text seront comptabilisés.

taskType enum (TaskType)

Facultatif. Type de tâche facultatif pour lequel les embeddings seront utilisés. Ne peut être défini que pour models/embedding-001.

title string

Facultatif. Titre facultatif du texte. Ne s'applique que lorsque TaskType est défini sur RETRIEVAL_DOCUMENT.

Remarque: Spécifier un title pour RETRIEVAL_DOCUMENT permet d'obtenir des représentations vectorielles continues de meilleure qualité pour la récupération.

outputDimensionality integer

Facultatif. Dimension réduite facultative pour l'embedding de sortie. Si cette option est définie, les valeurs excessives de l'embedding de sortie sont tronquées à partir de la fin. Compatible avec les modèles plus récents depuis 2024 uniquement. Vous ne pouvez pas définir cette valeur si vous utilisez l'ancien modèle (models/embedding-001).

Représentation JSON
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

ContentEmbedding

Liste de nombres à virgule flottante représentant un embedding.

Champs
values[] number

Les valeurs d'embedding.

Représentation JSON
{
  "values": [
    number
  ]
}

TaskType

Type de tâche pour laquelle l'embedding sera utilisé.

Enums
TASK_TYPE_UNSPECIFIED Valeur non définie, qui sera définie par défaut sur l'une des autres valeurs de l'énumération.
RETRIEVAL_QUERY Spécifie que le texte donné est une requête dans un contexte de recherche/récupération.
RETRIEVAL_DOCUMENT Spécifie que le texte donné est un document du corpus recherché.
SEMANTIC_SIMILARITY Indique que le texte donné sera utilisé pour la similarité textuelle sémantique (STS).
CLASSIFICATION Indique que le texte donné sera classé.
CLUSTERING Spécifie que les représentations vectorielles continues seront utilisées pour le clustering.
QUESTION_ANSWERING Indique que le texte donné sera utilisé pour répondre aux questions.
FACT_VERIFICATION Indique que le texte donné sera utilisé pour la vérification des faits.