El servicio de incorporaciones en la API de Gemini genera incorporaciones de última generación para palabras, frases y oraciones. Las incorporaciones resultantes se pueden usar para de procesamiento de lenguaje natural (PLN), como búsqueda semántica, texto como la clasificación y el agrupamiento en clústeres, entre muchos otros.
En esta página, se explican brevemente las incorporaciones y se destacan algunos casos de uso clave para el de incorporación de texto estándar para ayudarte a comenzar.
¿Qué son las incorporaciones?
Las incorporaciones de texto son una técnica de procesamiento de lenguaje natural (PLN) que convierte texto en coordenadas numéricas (llamadas vectores) que se pueden graficar en una espacio n-dimensional. Este enfoque te permite tratar fragmentos de texto como bits datos relacionales, que luego podemos usar para entrenar modelos.
Las incorporaciones capturan significado semántico y contexto, lo que da como resultado texto con significados similares tengan incorporaciones más cercanas. Por ejemplo, la oración “tomé mi al veterinario" y “Llegué a mi gato al veterinario” tendrían incorporaciones que se cercanas entre sí en el espacio vectorial, ya que ambos describen una forma similar adicional.
Puedes usar las incorporaciones para comparar diferentes textos y comprender cómo se relacionan. Por ejemplo, si las incorporaciones del texto “gato” y "perro" están cerca juntos podemos inferir que estas palabras son similares en significado o contexto, o ambos. Esta función permite una variedad de casos de uso descritos en la siguiente sección.
Casos de uso
Las incorporaciones de texto se usan en una variedad de casos de uso de PLN, como los siguientes:
- Recuperación de información: Puedes usar incorporaciones para recuperar semánticamente.
texto similar dado un fragmento de texto de entrada. Se pueden crear varias aplicaciones
respaldadas por un sistema de recuperación de información,
como la búsqueda semántica,
responder preguntas o resumir.
- Instructivo: Búsqueda de documentos
- Clasificación: Puedes entrenar un modelo con incorporaciones para clasificar.
documentos en categorías. Por ejemplo, si quieres clasificar datos
comentarios como negativos o positivos, puedes usar el servicio de incorporaciones para obtener
la representación vectorial de cada comentario para entrenar el clasificador.
- Instructivo: Entrena un texto clasificador
- Agrupamiento en clústeres: la comparación de vectores de texto puede mostrar qué tan similares o diferentes que son. Esta función se puede usar para entrenar un modelo de agrupamiento en clústeres que texto o documentos similares y para detectar anomalías en tus datos.
- Base de datos de vectores: Puedes almacenar las incorporaciones generadas en un vector
para mejorar la exactitud y eficiencia de tu aplicación de PLN.
Consulta el siguiente instructivo para aprender a usar una base de datos de vectores para
traducir instrucciones de texto en vectores numéricos.
- Instructivos: Trabaja con vectores las incorporaciones, Recuperación semántica
Modelos de incorporaciones de Gemini
La API de Gemini ofrece dos modelos que generan incorporaciones de texto: texto Las incorporaciones y Incorporaciones. Las incorporaciones de texto son versión actualizada del modelo de incorporación que ofrece tamaños de incorporaciones elásticas en 768. Las incorporaciones elásticas generan dimensiones de salida más pequeñas y y, potencialmente, ahorrar costos de procesamiento y almacenamiento con una menor pérdida de rendimiento.
Usa incorporaciones de texto para proyectos o aplicaciones nuevos. Tu aplicación debe solo usa el modelo de incorporación si no puedes migrarlo para usar incorporaciones de texto.
Genera incorporaciones con la API de Gemini
Usa el método embedContent
para generar incorporaciones de texto:
Python
result = genai.embed_content(
model="models/text-embedding-004",
content="What is the meaning of life?",
task_type="retrieval_document",
title="Embedding of single string")
# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')
Visita la página Cómo empezar instructivo del ejemplo ejecutable completo.
Go
ctx := context.Background()
// Access your API key as an environment variable (see our Getting Started tutorial)
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
// For embeddings, use the Text Embeddings model
em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("The quick brown fox jumps over the lazy dog."))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
Visita la página Cómo empezar instructivo para el ejemplo completo ejecutable.
Node.js
const { GoogleGenerativeAI } = require("@google/generative-ai");
// Access your API key as an environment variable (see our Getting Started tutorial)
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
async function run() {
// For embeddings, use the Text Embeddings model
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});
const text = "The quick brown fox jumps over the lazy dog."
const result = await model.embedContent(text);
const embedding = result.embedding;
console.log(embedding.values);
}
run();
Visita la página de introducción instructivo del ejemplo ejecutable completo.
Dart (Flutter)
final model = GenerativeModel(model: 'text-embedding-004', apiKey: apiKey);
final content = Content.text('The quick brown fox jumps over the lazy dog.');
final result = await model.embedContent(content);
print(result.embedding.values);
Visita la página Cómo empezar instructivo del ejemplo ejecutable completo.
curl
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
Visita nuestra Guía de inicio rápido sobre la incorporación con REST en GitHub del ejemplo ejecutable completo.
¿Qué sigue?
- Si quieres obtener más información sobre las incorporaciones, visita la publicación de Dale Markowitz en en la consola de Google Cloud Blog para obtener más información.
- Si tienes todo listo para comenzar a desarrollar, encontrarás código ejecutable completo en las guías de inicio rápido para Python, Ir, Node.js y Dart (Flutter).