Embeddings

Os embeddings são uma representação numérica de entradas de texto que abrem vários casos de uso únicos, como clustering, medição de similaridade e recuperação de informações. Para uma introdução, confira o guia de embeddings.

Método: models.embedContent

Gera um vetor de embedding de texto com base no Content de entrada usando o modelo de embedding do Gemini especificado.

Endpoint

postar https://generativelanguage.googleapis.com/v1beta/{model=models/*}:embedContent

Parâmetros de caminho

model string

Obrigatório. O nome do recurso do modelo. Isso serve como um ID a ser usado pelo modelo.

Esse nome precisa corresponder a um nome de modelo retornado pelo método models.list.

Formato: models/{model}. Ele assume o formato models/{model}.

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Campos
content object (Content)

Obrigatório. O conteúdo a ser incorporado. Somente os campos parts.text serão contados.

taskType enum (TaskType)

Opcional. Tipo de tarefa opcional em que os embeddings serão usados. Só pode ser definido para models/embedding-001.

title string

Opcional. Um título opcional para o texto. Aplicável apenas quando o Tipo de tarefa é RETRIEVAL_DOCUMENT.

Observação: especificar um title para RETRIEVAL_DOCUMENT fornece embeddings de melhor qualidade para recuperação.

outputDimensionality integer

Opcional. Dimensão reduzida opcional para o embedding de saída. Se definido, os valores excessivos na incorporação de saída serão truncados no final. Compatível com modelos mais recentes apenas desde 2024. Não será possível definir esse valor se você estiver usando o modelo anterior (models/embedding-001).

Exemplo de solicitação

Python


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);

Concha

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

Corpo da resposta

A resposta a um EmbedContentRequest.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

.
Campos
embedding object (ContentEmbedding)

Apenas saída. O embedding gerado a partir do conteúdo de entrada.

Representação JSON
{
  "embedding": {
    object (ContentEmbedding)
  }
}

Método: models.batchEmbedContents

Gera vários vetores de embedding da entrada Content, que consiste em um lote de strings representadas como objetos EmbedContentRequest.

Endpoint

postar https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

Parâmetros de caminho

model string

Obrigatório. O nome do recurso do modelo. Isso serve como um ID a ser usado pelo modelo.

Esse nome precisa corresponder a um nome de modelo retornado pelo método models.list.

Formato: models/{model}. Ele assume o formato models/{model}.

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Campos
requests[] object (EmbedContentRequest)

Obrigatório. Incorpore solicitações para o lote. O modelo em cada uma dessas solicitações precisa corresponder ao modelo especificado BatchEmbedContentsRequest.model.

Exemplo de solicitação

Python

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);

Concha

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

Corpo da resposta

A resposta a um BatchEmbedContentsRequest.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

.
Campos
embeddings[] object (ContentEmbedding)

Apenas saída. Os embeddings de cada solicitação, na mesma ordem informada na solicitação em lote.

Representação JSON
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

Solicitação contendo o Content do modelo a ser incorporado.

.
Campos
model string

Obrigatório. O nome do recurso do modelo. Isso serve como um ID a ser usado pelo modelo.

Esse nome precisa corresponder a um nome de modelo retornado pelo método models.list.

Formato: models/{model}

content object (Content)

Obrigatório. O conteúdo a ser incorporado. Somente os campos parts.text serão contados.

taskType enum (TaskType)

Opcional. Tipo de tarefa opcional em que os embeddings serão usados. Só pode ser definido para models/embedding-001.

title string

Opcional. Um título opcional para o texto. Aplicável apenas quando o Tipo de tarefa é RETRIEVAL_DOCUMENT.

Observação: especificar um title para RETRIEVAL_DOCUMENT fornece embeddings de melhor qualidade para recuperação.

outputDimensionality integer

Opcional. Dimensão reduzida opcional para o embedding de saída. Se definido, os valores excessivos na incorporação de saída serão truncados no final. Compatível com modelos mais recentes apenas desde 2024. Não será possível definir esse valor se você estiver usando o modelo anterior (models/embedding-001).

Representação JSON
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

ContentEmbedding

Uma lista de pontos flutuantes que representam um embedding.

.
Campos
values[] number

Os valores de embedding.

Representação JSON
{
  "values": [
    number
  ]
}

TaskType

Tipo de tarefa em que o embedding vai ser usado.

Enums
TASK_TYPE_UNSPECIFIED Valor não definido, que será padronizado para um dos outros valores de tipo enumerado.
RETRIEVAL_QUERY Especifica que o texto é uma consulta em uma configuração de pesquisa/recuperação.
RETRIEVAL_DOCUMENT Especifica que o texto fornecido é um documento do corpus que está sendo pesquisado.
SEMANTIC_SIMILARITY Especifica o texto fornecido que será usado para STS.
CLASSIFICATION Especifica que o texto fornecido será classificado.
CLUSTERING Especifica que os embeddings serão usados para clustering.
QUESTION_ANSWERING Especifica que o texto fornecido será usado para responder a perguntas.
FACT_VERIFICATION Especifica que o texto fornecido será usado para a verificação de fatos.