Embeddings na API Gemini

A API Gemini oferece suporte a vários modelos de incorporação que geram incorporação de última geração para palavras, frases, códigos e frases. Os embeddings resultantes podem ser usados para tarefas como pesquisa semântica, classificação de texto e agrupamento, entre muitas outras.

O que são embeddings?

Os embeddings capturam o significado semântico e o contexto, o que resulta em texto com significados semelhantes que têm embeddings "mais próximos". Por exemplo, as frases "Eu levei meu cachorro ao veterinário" e "Eu levei meu gato ao veterinário" teriam embeddings próximos no espaço vetorial, já que ambas descrevem um contexto semelhante.

Você pode usar os embeddings para comparar textos diferentes e entender como eles se relacionam. Por exemplo, se as embeddings do texto "cat" e "dog" estiverem próximas uma da outra, é possível inferir que essas palavras são semelhantes em significado, contexto ou ambos. Isso permite uma variedade de casos de uso comuns de IA.

Gerar embeddings

Use o método embedContent para gerar embeddings de texto:

Python

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

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

print(result.embeddings)

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)

Casos de uso

As embeddings de texto são usadas em vários casos de uso comuns de IA, como:

Modelos de embeddings

A API Gemini oferece três modelos que geram embeddings de texto:

Vamos lançar versões atualizadas do modelo de incorporação do Gemini nos próximos meses.