Embeddings

Gli incorporamenti sono una rappresentazione numerica dell'input di testo che apre una serie di casi d'uso unici, come il clustering, la misurazione delle somiglianze e il recupero di 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

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} Prende 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 il quale verranno utilizzati gli embedding. Può essere impostato solo per models/embedding-001.

title string

(Facoltativo) Un titolo facoltativo per il testo. Applicabile solo quando il tipo di attività è RETRIEVAL_DOCUMENT.

Nota: se specifichi un title per RETRIEVAL_DOCUMENT, ottieni incorporamenti 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


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'incorporamento generato dai contenuti di input.

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

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} Prende 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.

Esempio di richiesta

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

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 incorporamenti per ogni richiesta, nello stesso ordine fornito nella richiesta batch.

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

EmbedContentRequest

Richiesta contenente Content per il modello da incorporare.

Campi
model string

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

Questo nome deve corrispondere a un nome di 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 il quale verranno utilizzati gli embedding. Può essere impostato solo per models/embedding-001.

title string

(Facoltativo) Un titolo facoltativo per il testo. Applicabile solo quando il tipo di attività è RETRIEVAL_DOCUMENT.

Nota: se specifichi un title per RETRIEVAL_DOCUMENT, ottieni incorporamenti 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. Funzionalità supportata dai modelli più recenti solo 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 numeri in virgola mobile che rappresentano un incorporamento.

Campi
values[] number

I valori di incorporamento.

Rappresentazione JSON
{
  "values": [
    number
  ]
}

TaskType

Tipo di attività per cui verrà utilizzato l'incorporamento.

Enum
TASK_TYPE_UNSPECIFIED Valore non impostato, che per impostazione predefinita corrisponderà a uno degli altri valori enumerati.
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 in cui viene eseguita la ricerca.
SEMANTIC_SIMILARITY Specifica il testo specificato che 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 la risposta alle domande.
FACT_VERIFICATION Specifica che il testo specificato verrà utilizzato per la verifica dei fatti.