O modelo text-embedding-004
gera embeddings avançados
para palavras, frases e frases. Os embeddings resultantes podem ser usados para tarefas como pesquisa semântica, classificação de texto e agrupamento, entre muitas outras. Para mais informações sobre as embeddings, leia nosso artigo de pesquisa.
O que são embeddings?
Os embeddings capturam o significado semântico e o contexto, o que resulta em texto com significados semelhantes com 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.
É possível 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
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)
Casos de uso
As embeddings de texto são usadas em vários casos de uso comuns de IA, como:
Recuperação de informações:é possível usar embeddings para recuperar textos semanticamente semelhantes com base em um texto de entrada.
Agrupamento:comparar grupos de embeddings pode ajudar a identificar tendências ocultas.
Banco de dados de vetores:ao levar diferentes casos de uso de embeddings para a produção, é comum armazenar embeddings em um banco de dados de vetores.
Classificação:é possível treinar um modelo usando embeddings para classificar documentos em categorias.
Modelos de embeddings do Gemini
A API Gemini oferece dois modelos que geram embeddings de texto:
Os embeddings de texto são uma versão atualizada do modelo de embedding que oferece tamanhos de embedding elásticos com menos de 768 dimensões. As inclusões elásticas geram dimensões de saída menores e podem economizar custos de computação e armazenamento com uma pequena perda de desempenho.
Use embeddings de texto para novos projetos ou aplicativos.