Embeddings

Вложения — это численное представление ввода текста, которое открывает ряд уникальных вариантов использования, таких как кластеризация, измерение сходства и поиск информации. Для ознакомления ознакомьтесь с руководством по встраиванию .

Метод: models.embedContent

Создает вектор внедрения текста из входного Content используя указанную модель внедрения Gemini .

Конечная точка

опубликуйте https://generativelanguage.googleapis.com/v1beta/{model=models/*}:embedContent

Параметры пути

model string

Необходимый. Имя ресурса модели. Это служит идентификатором для использования модели.

Это имя должно соответствовать имени модели, возвращаемому методом models.list .

Формат: models/{model} Принимает форму models/{model} .

Тело запроса

Тело запроса содержит данные следующей структуры:

Поля
объект content object ( Content )

Необходимый. Содержимое для встраивания. Будут учитываться только поля parts.text .

перечисление taskType enum ( TaskType )

Необязательный. Необязательный тип задачи, для которого будут использоваться внедрения. Может быть установлено только для models/embedding-001 .

string title

Необязательный. Необязательный заголовок текста. Применимо только в том случае, если TaskType имеет значение RETRIEVAL_DOCUMENT .

Примечание. Указание title для RETRIEVAL_DOCUMENT обеспечивает более качественное внедрение при поиске.

integer outputDimensionality

Необязательный. Необязательный уменьшенный размер для встраивания вывода. Если установлено, лишние значения в выходном внедрении обрезаются с конца. Поддерживается только новыми моделями с 2024 года. Вы не можете установить это значение, если используете более раннюю модель ( models/embedding-001 ).

Пример запроса

Питон

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

Оболочка

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

Тело ответа

Ответ на EmbedContentRequest .

В случае успеха тело ответа содержит данные следующей структуры:

Поля
объект embedding object ( ContentEmbedding )

Только вывод. Встраивание, созданное на основе входного содержимого.

JSON-представление
{
  "embedding": {
    object (ContentEmbedding)
  }
}

Метод: models.batchEmbedContents

Создает несколько векторов внедрения из входного Content , которое состоит из пакета строк, представленных как объекты EmbedContentRequest .

Конечная точка

опубликуйте https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

Параметры пути

model string

Необходимый. Имя ресурса модели. Это служит идентификатором для использования модели.

Это имя должно соответствовать имени модели, возвращаемому методом models.list .

Формат: models/{model} Принимает форму models/{model} .

Тело запроса

Тело запроса содержит данные следующей структуры:

Поля
объект requests[] object ( EmbedContentRequest )

Необходимый. Встраивание запросов на пакет. Модель в каждом из этих запросов должна соответствовать модели, указанной BatchEmbedContentsRequest.model .

Пример запроса

Питон

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

Оболочка

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

Тело ответа

Ответ на BatchEmbedContentsRequest .

В случае успеха тело ответа содержит данные следующей структуры:

Поля
объект embeddings[] object ( ContentEmbedding )

Только вывод. Внедрения для каждого запроса в том же порядке, который указан в пакетном запросе.

JSON-представление
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

ВстроитьСодержимоеЗапрос

Запрос, содержащий Content для встраиваемой модели.

Поля
model string

Необходимый. Имя ресурса модели. Это служит идентификатором для использования модели.

Это имя должно соответствовать имени модели, возвращаемому методом models.list .

Формат: models/{model}

объект content object ( Content )

Необходимый. Содержимое для встраивания. Будут учитываться только поля parts.text .

перечисление taskType enum ( TaskType )

Необязательный. Необязательный тип задачи, для которого будут использоваться внедрения. Может быть установлено только для models/embedding-001 .

string title

Необязательный. Необязательный заголовок текста. Применимо только в том случае, если TaskType имеет значение RETRIEVAL_DOCUMENT .

Примечание. Указание title для RETRIEVAL_DOCUMENT обеспечивает более качественное внедрение при поиске.

integer outputDimensionality

Необязательный. Необязательный уменьшенный размер для встраивания вывода. Если установлено, лишние значения в выходном внедрении обрезаются с конца. Поддерживается только новыми моделями с 2024 года. Вы не можете установить это значение, если используете более раннюю модель ( models/embedding-001 ).

JSON-представление
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

Встраивание контента

Список чисел с плавающей запятой, представляющих вложение.

Поля
values[] number

Вложенные значения.

JSON-представление
{
  "values": [
    number
  ]
}

Тип задачи

Тип задачи, для которой будет использоваться внедрение.

Перечисления
TASK_TYPE_UNSPECIFIED Неустановленное значение, которое по умолчанию будет равно одному из других значений перечисления.
RETRIEVAL_QUERY Указывает, что данный текст является запросом в настройках поиска/извлечения.
RETRIEVAL_DOCUMENT Указывает, что данный текст является документом из искомого корпуса.
SEMANTIC_SIMILARITY Указывает, что данный текст будет использоваться для STS.
CLASSIFICATION Указывает, что данный текст будет засекречен.
CLUSTERING Указывает, что внедрения будут использоваться для кластеризации.
QUESTION_ANSWERING Указывает, что данный текст будет использоваться для ответа на вопрос.
FACT_VERIFICATION Указывает, что данный текст будет использоваться для проверки фактов.