L'API Gemini est compatible avec plusieurs modèles d'embedding qui génèrent des embeddings pour les mots, les expressions, le code 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.
-Que sont les embeddings ?
Les représentations vectorielles continues sont des représentations numériques de texte (ou d'autres formats multimédias) qui capturent les relations entre les entrées. Les embeddings textuels fonctionnent en convertissant le texte en tableaux de nombres à virgule flottante, appelés vecteurs. Ces vecteurs sont conçus pour capturer la signification du texte. La longueur du tableau d'embedding est appelée dimensionnalité du vecteur. Un passage de texte peut être représenté par un vecteur contenant des centaines de dimensions.
Les embeddings capturent la signification sémantique et le contexte, ce qui signifie que les embeddings "plus proches" correspondent à des textes dont la signification est similaire. 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 les unes des autres dans l'espace vectoriel.
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.
Avant de commencer
Avant d'appeler l'API Gemini, assurez-vous d'avoir installé le SDK de votre choix et d'avoir configuré une clé API Gemini prête à l'emploi.
Générer des embeddings
Utilisez la méthode embedContent
pour générer des embeddings textuels:
from google import genai
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="What is the meaning of life?")
print(result.embeddings)
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.embedContent({
model: 'gemini-embedding-exp-03-07',
contents: 'What is the meaning of life?',
});
console.log(response.embeddings);
}
main();
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("gemini-embedding-exp-03-07")
res, err := em.EmbedContent(ctx, genai.Text("What is the meaning of life?"))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]}
}'
Vous pouvez également générer des représentations vectorielles continues pour plusieurs segments à la fois en les transmettant sous forme de liste de chaînes.
Types de tâches
Lors de la création de systèmes de génération augmentée par récupération (RAG), il est courant d'utiliser des embeddings textuels pour effectuer une recherche de similarité. Dans certains cas, cela peut entraîner une dégradation de la qualité, car les questions et leurs réponses ne sont pas sémantiquement similaires. Par exemple, une question comme "Pourquoi le ciel est-il bleu ?" et sa réponse "La diffusion de la lumière du soleil provoque la couleur bleue" ont des significations distinctes en tant qu'énoncés. Cela signifie qu'un système RAG ne reconnaîtra pas automatiquement leur relation.
Les types de tâches vous permettent de générer des embeddings optimisés pour des tâches spécifiques, ce qui vous fait gagner du temps et évite les coûts nécessaires pour développer vos propres embeddings spécifiques à des tâches.
from google import genai
from google.genai import types
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="What is the meaning of life?",
config=types.EmbedContentConfig(task_type="SEMANTIC_SIMILARITY")
)
print(result.embeddings)
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.embedContent({
model: 'gemini-embedding-exp-03-07',
contents: 'What is the meaning of life?',
config: {
taskType: "SEMANTIC_SIMILARITY",
}
});
console.log(response.embeddings);
}
main();
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]},
"taskType": "SEMANTIC_SIMILARITY"
}'
Types de tâches compatibles
Type de tâche | Description |
---|---|
SEMANTIC_SIMILARITY |
Permet de générer des embeddings optimisés pour évaluer la similitude de texte. |
CLASSIFICATION |
Permet de générer des embeddings optimisés pour classer des textes en fonction d'étiquettes prédéfinies. |
CLUSTERING |
Permet de générer des embeddings optimisés pour regrouper des textes en fonction de leurs similitudes. |
RETRIEVAL_DOCUMENT , RETRIEVAL_QUERY , QUESTION_ANSWERING et FACT_VERIFICATION |
Permettent de générer des embeddings optimisés pour la recherche de documents ou la récupération d'informations. |
CODE_RETRIEVAL_QUERY |
Permet de récupérer un bloc de code en fonction d'une requête en langage naturel, par exemple pour trier un tableau ou inverser une liste chaînée. Les représentations vectorielles continues des blocs de code sont calculées à l'aide de RETRIEVAL_DOCUMENT . |
Cas d'utilisation
Les embeddings de texte sont utilisés dans divers cas d'utilisation courants de l'IA, par exemple:
Récupération d'informations:vous pouvez utiliser des embeddings pour récupérer un texte sémantiquement similaire à partir d'un texte d'entrée.
Clustering:comparer des groupes d'embeddings peut aider à identifier des tendances cachées.
Base de données vectorielle:lorsque vous mettez en production différents cas d'utilisation des embeddings, il est courant de les stocker dans une base de données vectorielle.
Classification:vous pouvez entraîner un modèle à l'aide d'embeddings pour classer des documents en catégories.
Modèles d'embeddings
L'API Gemini propose trois modèles qui génèrent des représentations vectorielles continues de texte:
Étape suivante
Consultez le notebook de démarrage rapide sur les représentations vectorielles continues.