Embeddings

Les représentations vectorielles continues sont une représentation numérique de l'entrée textuelle 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 une introduction, consultez le guide sur les représentations vectorielles continues.

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 ressource du modèle. Il servira d'ID pour le modèle.

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 :

<ph type="x-smartling-placeholder">
</ph> 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 représentations vectorielles continues seront utilisées. Ne peut être défini que pour models/embedding-001.

title string

Facultatif. Titre facultatif pour le 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 la représentation vectorielle continue de la sortie. Si cette option est définie, les valeurs excessives dans la représentation vectorielle continue de la sortie sont tronquées à 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


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

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 de représentation vectorielle continue à partir de l'élément Content d'entrée qui consiste en un lot de chaînes représentées par des objets EmbedContentRequest.

Point de terminaison

<ph type="x-smartling-placeholder"></ph> publier https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

Paramètres de chemin d'accès

model string

Obligatoire. Nom de ressource du modèle. Il servira d'ID pour le modèle.

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 :

<ph type="x-smartling-placeholder">
</ph> Champs
requests[] object (EmbedContentRequest)

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

Exemple de requête

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

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 ressource du modèle. Il s'agit d'un identifiant 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 représentations vectorielles continues seront utilisées. Ne peut être défini que pour models/embedding-001.

title string

Facultatif. Titre facultatif pour le 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 vecteur d'encapsulation.

Champs
values[] number

Les valeurs d'embedding.

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

TaskType

Type de tâche pour lequel la représentation vectorielle continue sera utilisée.

Enums
TASK_TYPE_UNSPECIFIED Valeur non définie. Elle sera définie par défaut sur l'une des autres valeurs d'é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 les questions-réponses.
FACT_VERIFICATION Indique que le texte donné sera utilisé pour la vérification des faits.