Représentations vectorielles continues dans l'API Gemini

Le modèle text-embedding-004 génère des représentations vectorielles continues de pointe pour les mots, les expressions et les phrases. Les représentations vectorielles continues obtenues peuvent ensuite être utilisées pour des tâches telles que la recherche sémantique, la classification de texte et le clustering, entre autres. Pour en savoir plus sur les représentations vectorielles continues, consultez notre article de recherche.

Que sont les embeddings ?

Les embeddings capturent la signification sémantique et le contexte, ce qui signifie que les embeddings "plus proches" correspondent à des textes ayant des significations similaires. Par exemple, les phrases "J'ai emmené mon chien chez le vétérinaire" et "J'ai emmené mon chat chez le vétérinaire" auraient des représentations vectorielles continues proches l'une de l'autre dans l'espace vectoriel, car elles décrivent toutes deux un contexte similaire.

Vous pouvez utiliser des représentations vectorielles continues pour comparer différents textes et comprendre leur relation. Par exemple, si les représentations vectorielles continues du texte "chat" et "chien" sont proches, vous pouvez en déduire que ces mots sont similaires en termes de sens, de contexte ou des deux. Cela permet de mettre en œuvre différents cas d'utilisation courants de l'IA.

Générer des embeddings

Utilisez la méthode embedContent pour générer des représentations vectorielles continues de texte:

Python

import google.generativeai as genai
import os

genai.configure(api_key=os.environ["GEMINI_API_KEY"])

result = genai.embed_content(
        model="models/text-embedding-004",
        content="What is the meaning of life?")

print(str(result['embedding']))

Node.js

const { GoogleGenerativeAI } = require("@google/generative-ai");

const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});

async function run() {
    const result = await model.embedContent("What is the meaning of life?");
    console.log(result.embedding.values);
}

run();

curl

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

Go

ctx := context.Background()

client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GEMINI_API_KEY")))
if err != nil {
    log.Fatal(err)
}
defer client.Close()

em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("What is the meaning of life?"))

if err != nil {
    panic(err)
}
fmt.Println(res.Embedding.Values)

Cas d'utilisation

Les embeddings de texte sont utilisés dans divers cas d'utilisation courants de l'IA, par exemple:

Modèles d'embeddings Gemini

L'API Gemini propose deux modèles qui génèrent des représentations vectorielles continues de texte:

Les embeddings de texte sont une version mise à jour du modèle d'embedding qui offre des tailles d'embedding élastiques de moins de 768 dimensions. Les représentations vectorielles continues génèrent des dimensions de sortie plus petites et peuvent réduire les coûts de calcul et de stockage avec une perte de performances mineure.

Utilisez les représentations vectorielles continues de texte pour de nouveaux projets ou applications.