Embeddings

Las incorporaciones son una representación numérica de la entrada de texto que abre una serie de casos de uso únicos, como el agrupamiento, la medición de similitud y la recuperación de información. Para obtener una introducción, consulta la guía de incorporaciones.

Método: models.embedContent

Genera un vector de incorporación de texto a partir de la entrada Content con el modelo de incorporación de Gemini especificado.

Extremo

publicación https://generativelanguage.googleapis.com/v1beta/{model=models/*}:embedContent

La URL usa la sintaxis de la transcodificación gRPC.

Parámetros de ruta

model string

Obligatorio. Es el nombre del recurso del modelo. Este ID sirve como ID para que lo use el modelo.

Este nombre debe coincidir con un nombre de modelo que devuelva el método models.list.

Formato: models/{model} Tiene el formato models/{model}.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Campos
content object (Content)

Obligatorio. El contenido que se incorporará. Solo se registrarán los campos parts.text.

taskType enum (TaskType)

Opcional. Es el tipo de tarea opcional para el que se usarán las incorporaciones. Solo se puede configurar para models/embedding-001.

title string

Opcional. Es un título opcional para el texto. Solo se aplica cuando TaskType es RETRIEVAL_DOCUMENT.

Nota: Especificar un title para RETRIEVAL_DOCUMENT proporciona incorporaciones de mejor calidad para la recuperación.

outputDimensionality integer

Opcional. Es una dimensión reducida opcional para la incorporación de salida. Si se establece, los valores excesivos en la incorporación de salida se truncan desde el final. Solo es compatible con modelos más nuevos a partir de 2024. No puedes establecer este valor si usas el modelo anterior (models/embedding-001).

Ejemplo de solicitud

Python

import google.generativeai as genai

text = "Hello World!"
result = genai.embed_content(
    model="models/text-embedding-004", content=text, output_dimensionality=10
)
print(result["embedding"])

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
  model: "text-embedding-004",
});

const result = await model.embedContent("Hello world!");

console.log(result.embedding);

Una caracola

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

Cuerpo de la respuesta

La respuesta a un EmbedContentRequest.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Campos
embedding object (ContentEmbedding)

Solo salida. La incorporación generada a partir del contenido de entrada.

Representación JSON
{
  "embedding": {
    object (ContentEmbedding)
  }
}

Método: models.batchEmbedContents

Genera varios vectores de incorporación a partir de la entrada Content, que consta de un lote de cadenas representadas como objetos EmbedContentRequest.

Extremo

publicación https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

La URL usa la sintaxis de la transcodificación gRPC.

Parámetros de ruta

model string

Obligatorio. Es el nombre del recurso del modelo. Este ID sirve como ID para que lo use el modelo.

Este nombre debe coincidir con un nombre de modelo que devuelva el método models.list.

Formato: models/{model} Tiene el formato models/{model}.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Campos
requests[] object (EmbedContentRequest)

Obligatorio. Incorpora solicitudes para el lote. El modelo de cada una de estas solicitudes debe coincidir con el modelo especificado BatchEmbedContentsRequest.model.

Ejemplo de solicitud

Python

import google.generativeai as genai

texts = [
    "What is the meaning of life?",
    "How much wood would a woodchuck chuck?",
    "How does the brain work?",
]
result = genai.embed_content(
    model="models/text-embedding-004", content=texts, output_dimensionality=10
)
print(result)

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
  model: "text-embedding-004",
});

function textToRequest(text) {
  return { content: { role: "user", parts: [{ text }] } };
}

const result = await model.batchEmbedContents({
  requests: [
    textToRequest("What is the meaning of life?"),
    textToRequest("How much wood would a woodchuck chuck?"),
    textToRequest("How does the brain work?"),
  ],
});

console.log(result.embeddings);

Una caracola

curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:batchEmbedContents?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"requests": [{
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "What is the meaning of life?"}]}, },
      {
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "How much wood would a woodchuck chuck?"}]}, },
      {
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "How does the brain work?"}]}, }, ]}' 2> /dev/null | grep -C 5 values

Cuerpo de la respuesta

La respuesta a un BatchEmbedContentsRequest.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Campos
embeddings[] object (ContentEmbedding)

Solo salida. Las incorporaciones de cada solicitud, en el mismo orden que se proporciona en la solicitud por lotes.

Representación JSON
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

Solicitud que contiene el Content para que el modelo incorpore.

Campos
model string

Obligatorio. Es el nombre del recurso del modelo. Este ID sirve como ID para que lo use el modelo.

Este nombre debe coincidir con un nombre de modelo que devuelva el método models.list.

Formato: models/{model}

content object (Content)

Obligatorio. El contenido que se incorporará. Solo se registrarán los campos parts.text.

taskType enum (TaskType)

Opcional. Es el tipo de tarea opcional para el que se usarán las incorporaciones. Solo se puede configurar para models/embedding-001.

title string

Opcional. Es un título opcional para el texto. Solo se aplica cuando TaskType es RETRIEVAL_DOCUMENT.

Nota: Especificar un title para RETRIEVAL_DOCUMENT proporciona incorporaciones de mejor calidad para la recuperación.

outputDimensionality integer

Opcional. Es una dimensión reducida opcional para la incorporación de salida. Si se establece, los valores excesivos en la incorporación de salida se truncan desde el final. Solo es compatible con modelos más nuevos a partir de 2024. No puedes establecer este valor si usas el modelo anterior (models/embedding-001).

Representación JSON
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

ContentEmbedding

Una lista de números de punto flotante que representan una incorporación.

Campos
values[] number

Los valores de incorporación.

Representación JSON
{
  "values": [
    number
  ]
}

TaskType

Es el tipo de tarea para la que se usará la incorporación.

Enumeraciones
TASK_TYPE_UNSPECIFIED Valor no establecido, que se establecerá de forma predeterminada en uno de los otros valores de enum.
RETRIEVAL_QUERY Especifica que el texto dado es una consulta en un parámetro de configuración de búsqueda/recuperación.
RETRIEVAL_DOCUMENT Especifica que el texto dado es un documento del corpus que se está buscando.
SEMANTIC_SIMILARITY Especifica que el texto dado se usará para la STS.
CLASSIFICATION Especifica que se clasificará el texto determinado.
CLUSTERING Especifica que las incorporaciones se usarán para el agrupamiento en clústeres.
QUESTION_ANSWERING Especifica que el texto dado se usará para responder preguntas.
FACT_VERIFICATION Especifica que el texto dado se usará para la verificación de datos.