Embeddings

Wbudowane elementy to liczbowa reprezentacja danych wejściowych w postaci tekstu, która umożliwia wiele unikalnych zastosowań, takich jak grupowanie, pomiar podobieństwa i pobieranie informacji. Więcej informacji znajdziesz w przewodniku po umieszczaniu treści na stronie.

Metoda: models.embedContent

Generuje wektor tekstowy z danych wejściowych Content za pomocą określonego modelu wektorów Gemini.

Punkt końcowy

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

Adres URL używa składni transkodowania gRPC.

Parametry ścieżki

model string

Wymagany. Nazwa zasobu modelu. Jest to identyfikator modelu, którego chcesz użyć.

Nazwa ta powinna być zgodna z nazwą modelu zwróconą przez metodę models.list.

Format: models/{model}. Ma postać models/{model}.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Pola
content object (Content)

Wymagany. Treści do osadzenia. Zliczane będą tylko pola parts.text.

taskType enum (TaskType)

Opcjonalnie: Opcjonalny typ zadania, w którym mają być używane zaimplementowane embeddingi. Można ustawić tylko w przypadku parametru models/embedding-001.

title string

Opcjonalnie: Opcjonalny tytuł tekstu. Dotyczy tylko wartości RETRIEVAL_DOCUMENT dla parametru TaskType.

Uwaga: określenie title dla RETRIEVAL_DOCUMENT zapewnia lepsze jakościowo kody zanurzeniowe do wyszukiwania.

outputDimensionality integer

Opcjonalnie: Opcjonalnie zmniejszony wymiar wektora dystrybucyjnego na wyjściu. Jeśli jest ustawiona, nadmierne wartości w embeddingu wyjściowym są obcinane od końca. Obsługiwane tylko przez nowsze modele od 2024 r. Jeśli używasz starszego modelu (models/embedding-001), nie możesz ustawić tej wartości.

Przykładowe żądanie

Python

# With Gemini-2 we're launching a new SDK, see this doc for details.
# https://ai.google.dev/gemini-api/docs/migrate

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

Muszla

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

Treść odpowiedzi

Odpowiedź na EmbedContentRequest.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Pola
embedding object (ContentEmbedding)

Tylko dane wyjściowe. Elementy osadzone wygenerowane na podstawie treści wejściowych.

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

Metoda: models.batchEmbedContents

Generuje wiele wektorów zanurzonych na podstawie wejścia Content, które składa się z grupy ciągów znaków reprezentowanych jako obiekty EmbedContentRequest.

Punkt końcowy

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

Adres URL używa składni transkodowania gRPC.

Parametry ścieżki

model string

Wymagany. Nazwa zasobu modelu. Jest to identyfikator modelu, którego chcesz użyć.

Nazwa ta powinna być zgodna z nazwą modelu zwróconą przez metodę models.list.

Format: models/{model}. Ma postać models/{model}.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Pola
requests[] object (EmbedContentRequest)

Wymagany. Prześlij prośby o przeniesienie zbiorcze. Model w każdym z tych żądań musi być zgodny z modelem określonym w pliku BatchEmbedContentsRequest.model.

Przykładowe żądanie

Python

# With Gemini-2 we're launching a new SDK, see this doc for details.
# https://ai.google.dev/gemini-api/docs/migrate

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

Muszla

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

Treść odpowiedzi

Odpowiedź na BatchEmbedContentsRequest.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Pola
embeddings[] object (ContentEmbedding)

Tylko dane wyjściowe. Węzły dla każdego żądania w tej samej kolejności, w jakiej zostały podane w żądaniu zbiorczym.

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

EmbedContentRequest

Żądanie zawierające Content modelu do osadzenia.

Pola
model string

Wymagany. Nazwa zasobu modelu. Jest to identyfikator modelu, którego chcesz użyć.

Nazwa ta powinna być zgodna z nazwą modelu zwróconą przez metodę models.list.

Format: models/{model}

content object (Content)

Wymagany. Treści do osadzenia. Zliczane będą tylko pola parts.text.

taskType enum (TaskType)

Opcjonalnie: Opcjonalny typ zadania, w którym mają być używane zaimplementowane embeddingi. Można ustawić tylko w przypadku parametru models/embedding-001.

title string

Opcjonalnie: Opcjonalny tytuł tekstu. Dotyczy tylko wartości RETRIEVAL_DOCUMENT dla parametru TaskType.

Uwaga: określenie title dla RETRIEVAL_DOCUMENT zapewnia lepsze jakościowo kody zanurzeniowe do wyszukiwania.

outputDimensionality integer

Opcjonalnie: Opcjonalnie zmniejszony wymiar wektora dystrybucyjnego na wyjściu. Jeśli jest ustawiona, nadmierne wartości w embeddingu wyjściowym są obcinane od końca. Obsługiwane tylko przez nowsze modele od 2024 r. Jeśli używasz starszego modelu (models/embedding-001), nie możesz ustawić tej wartości.

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

ContentEmbedding

Lista liczb zmiennoprzecinkowych reprezentujących zakodowanie.

Pola
values[] number

wartości wstawiania.

Zapis JSON
{
  "values": [
    number
  ]
}

TaskType

Typ zadania, do którego ma służyć osadzenie.

Wartości w polu enum
TASK_TYPE_UNSPECIFIED Nieokreślona wartość, która domyślnie zostanie ustawiona na jedną z innych wartości typu wyliczeniowego.
RETRIEVAL_QUERY Określa, że podany tekst jest zapytaniem w ustawieniu wyszukiwania/pobierania.
RETRIEVAL_DOCUMENT Określa, że podany tekst jest dokumentem z korpusu, w którym jest przeprowadzane wyszukiwanie.
SEMANTIC_SIMILARITY Określa, że podany tekst będzie używany do STS.
CLASSIFICATION Określa, że dany tekst zostanie zaklasyfikowany.
CLUSTERING Określa, że wektory zostaną użyte do podziału na grupy.
QUESTION_ANSWERING Określa, że podany tekst będzie używany do odpowiadania na pytania.
FACT_VERIFICATION Określa, że podany tekst będzie używany do weryfikacji faktów.