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 embeddingu tekstu z danych wejściowych Content za pomocą określonego modelu embeddingu Gemini.

Punkt końcowy

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

Parametry ścieżki

model string

Wymagane. 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)

Wymagane. 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

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

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

Parametry ścieżki

model string

Wymagane. 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)

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

Przykładowe żądanie

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

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 występują w żądaniu zbiorczym.

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

EmbedContentRequest

Żądanie zawierające Content modelu do osadzenia.

Pola
model string

Wymagane. 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)

Wymagane. 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, wartości wyjściowe, które są zbyt duże, 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.