Embeddings

Gli embedding sono una rappresentazione numerica dell'input di testo che aprono una serie di casi d'uso unici, come il clustering, la misurazione della somiglianza e il recupero delle informazioni. Per un'introduzione, consulta la guida all'inserimento.

Metodo: models.embedContent

Genera un vettore di embedding del testo dall'input Content utilizzando il modello di embedding Gemini specificato.

Endpoint

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

L'URL utilizza la sintassi di transcodifica gRPC.

Parametri del percorso

model string

Obbligatorio. Il nome della risorsa del modello. che funge da ID per il modello.

Questo nome deve corrispondere a un nome del modello restituito dal metodo models.list.

Formato: models/{model} Deve avere il formato models/{model}.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Campi
content object (Content)

Obbligatorio. I contenuti da incorporare. Verranno conteggiati solo i campi parts.text.

taskType enum (TaskType)

Facoltativo. Tipo di attività facoltativo per cui verranno utilizzati gli embedding. Può essere impostato solo per models/embedding-001.

title string

Facoltativo. Un titolo facoltativo per il testo. Applicabile solo quando TaskType è RETRIEVAL_DOCUMENT.

Nota: la specifica di un valore title per RETRIEVAL_DOCUMENT fornisce embedding di qualità migliore per il recupero.

outputDimensionality integer

Facoltativo. Dimensione ridotta facoltativa per l'embedding di output. Se impostato, i valori eccessivi nell'embedding di output vengono troncati dalla fine. Supportato solo dai modelli più recenti dal 2024. Non puoi impostare questo valore se utilizzi il modello precedente (models/embedding-001).

Richiesta di esempio

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

Conchiglia

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 della risposta

La risposta a un EmbedContentRequest.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Campi
embedding object (ContentEmbedding)

Solo output. L'embedding generato dai contenuti inseriti.

Rappresentazione JSON
{
  "embedding": {
    object (ContentEmbedding)
  }
}

Metodo: models.batchEmbedContents

Genera più vettori di embedding dall'input Content, costituito da un batch di stringhe rappresentate come oggetti EmbedContentRequest.

Endpoint

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

L'URL utilizza la sintassi di transcodifica gRPC.

Parametri del percorso

model string

Obbligatorio. Il nome della risorsa del modello. che funge da ID per il modello.

Questo nome deve corrispondere a un nome del modello restituito dal metodo models.list.

Formato: models/{model} Deve avere il formato models/{model}.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Campi
requests[] object (EmbedContentRequest)

Obbligatorio. Incorpora le richieste per il batch. Il modello in ciascuna di queste richieste deve corrispondere al modello specificato BatchEmbedContentsRequest.model.

Richiesta di esempio

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

Conchiglia

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 della risposta

La risposta a un BatchEmbedContentsRequest.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Campi
embeddings[] object (ContentEmbedding)

Solo output. Gli embedding per ogni richiesta, nello stesso ordine fornito nella richiesta batch.

Rappresentazione JSON
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

Richiesta contenente il Content per il modello da incorporare.

Campi
model string

Obbligatorio. Il nome della risorsa del modello. che funge da ID per il modello.

Questo nome deve corrispondere a un nome del modello restituito dal metodo models.list.

Formato: models/{model}

content object (Content)

Obbligatorio. I contenuti da incorporare. Verranno conteggiati solo i campi parts.text.

taskType enum (TaskType)

Facoltativo. Tipo di attività facoltativo per cui verranno utilizzati gli embedding. Può essere impostato solo per models/embedding-001.

title string

Facoltativo. Un titolo facoltativo per il testo. Applicabile solo quando TaskType è RETRIEVAL_DOCUMENT.

Nota: la specifica di un valore title per RETRIEVAL_DOCUMENT fornisce embedding di qualità migliore per il recupero.

outputDimensionality integer

Facoltativo. Dimensione ridotta facoltativa per l'embedding di output. Se impostato, i valori eccessivi nell'embedding di output vengono troncati dalla fine. Supportato solo dai modelli più recenti dal 2024. Non puoi impostare questo valore se utilizzi il modello precedente (models/embedding-001).

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

ContentEmbedding

Un elenco di valori float che rappresentano un embedding.

Campi
values[] number

I valori di incorporamento.

Rappresentazione JSON
{
  "values": [
    number
  ]
}

TaskType

Tipo di attività per la quale verrà utilizzato l'embedding.

Enum
TASK_TYPE_UNSPECIFIED Valore non impostato, che per impostazione predefinita corrisponderà a uno degli altri valori dell'enum.
RETRIEVAL_QUERY Specifica che il testo specificato è una query in un'impostazione di ricerca/recupero.
RETRIEVAL_DOCUMENT Specifica che il testo specificato è un documento del corpus sottoposto a ricerca.
SEMANTIC_SIMILARITY Specifica che il testo specificato verrà utilizzato per STS.
CLASSIFICATION Specifica che il testo specificato verrà classificato.
CLUSTERING Specifica che gli embedding verranno utilizzati per il clustering.
QUESTION_ANSWERING Specifica che il testo specificato verrà utilizzato per rispondere alle domande.
FACT_VERIFICATION Specifica che il testo specificato verrà utilizzato per la verifica dei fatti.