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 agli incorporamenti.

Metodo: models.embedContent

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

Endpoint

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

Parametri del percorso

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} 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 cui verranno utilizzati gli incorporamenti. 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'incorporamento di output. Se questa impostazione è impostata, un numero eccessivo di valori nell'incorporamento di output viene troncato dalla fine. Funzionalità supportata dai modelli più recenti solo dal 2024. Non puoi impostare questo valore se utilizzi il modello precedente (models/embedding-001).

Esempio di richiesta

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:

di Gemini Advanced.
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 incorporamento dall'input Content, costituito da un batch di stringhe rappresentate come oggetti EmbedContentRequest.

Endpoint

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

Parametri del percorso

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} 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 per 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:

di Gemini Advanced.
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.

di Gemini Advanced.
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 cui verranno utilizzati gli incorporamenti. 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'incorporamento di output. Se questa impostazione è impostata, un numero eccessivo di valori nell'incorporamento di output viene troncato 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.

di Gemini Advanced.
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 verrà impostato in modo predefinito su uno degli altri valori 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 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 incorporamenti 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.