Batch API

API Gemini поддерживает пакетную обработку запросов, позволяющую обрабатывать несколько запросов за один вызов. Более подробную информацию см. в руководстве по пакетной обработке запросов API .

Метод: models.batchGenerateContent

Добавляет в очередь пакет запросов models.generateContent для пакетной обработки.

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

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

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

batch.model string

Обязательно. Название Model , которая будет использоваться для генерации автозавершения.

Формат: models/{model} . Он принимает вид models/{model} .

Текст запроса

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

Поля
batch.name string

Только вывод. Идентификатор. Имя ресурса пакета.

Формат: batches/{batchId} .

batch.displayName string

Обязательно. Заданное пользователем имя для этой партии.

batch.inputConfig object ( InputConfig )

Обязательно. Введите конфигурацию экземпляров, на которых выполняется пакетная обработка.

batch.output object ( GenerateContentBatchOutput )

Только вывод. Результат пакетного запроса.

batch.createTime string ( Timestamp format)

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

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

batch.endTime string ( Timestamp format)

Только выходные данные. Время завершения пакетной обработки.

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

batch.updateTime string ( Timestamp format)

Только вывод. Время последнего обновления пакета.

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

batch.batchStats object ( BatchStats )

Только вывод. Статистика по партии.

batch.state enum ( BatchState )

Только вывод. Состояние пакета.

batch.priority string ( int64 format)

Необязательный параметр. Приоритет партии. Партии с более высоким приоритетом будут обрабатываться раньше партий с более низким приоритетом. Допускаются отрицательные значения. Значение по умолчанию — 0.

Ответный текст

В случае успеха тело ответа содержит экземпляр Operation .

Метод: models.asyncBatchEmbedContent

Добавляет в очередь пакет запросов models.embedContent для пакетной обработки. У нас есть обработчик models.batchEmbedContents в GenerativeService , но он был синхронизированным. Поэтому мы назвали этот обработчик Async , чтобы избежать путаницы.

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

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

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

batch.model string

Обязательно. Название Model , которая будет использоваться для генерации автозавершения.

Формат: models/{model} . Он принимает вид models/{model} .

Текст запроса

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

Поля
batch.name string

Только вывод. Идентификатор. Имя ресурса пакета.

Формат: batches/{batchId} .

batch.displayName string

Обязательно. Заданное пользователем имя для этой партии.

batch.inputConfig object ( InputEmbedContentConfig )

Обязательно. Введите конфигурацию экземпляров, на которых выполняется пакетная обработка.

batch.output object ( EmbedContentBatchOutput )

Только вывод. Результат пакетного запроса.

batch.createTime string ( Timestamp format)

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

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

batch.endTime string ( Timestamp format)

Только выходные данные. Время завершения пакетной обработки.

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

batch.updateTime string ( Timestamp format)

Только вывод. Время последнего обновления пакета.

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

batch.batchStats object ( EmbedContentBatchStats )

Только вывод. Статистика по партии.

batch.state enum ( BatchState )

Только вывод. Состояние пакета.

batch.priority string ( int64 format)

Необязательный параметр. Приоритет партии. Партии с более высоким приоритетом будут обрабатываться раньше партий с более низким приоритетом. Допускаются отрицательные значения. Значение по умолчанию — 0.

Ответный текст

В случае успеха тело ответа содержит экземпляр Operation .

Метод: batches.get

Получает актуальное состояние длительной операции. Клиенты могут использовать этот метод для периодического опроса результата операции в соответствии с рекомендациями API-сервиса.

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

получить https: / /generativelanguage.googleapis.com /v1beta /{name=batches /*}

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

string name

Название ресурса операции. Оно имеет вид batches/{batches} .

Текст запроса

Тело запроса должно быть пустым.

Ответный текст

В случае успеха тело ответа содержит экземпляр Operation .

Метод: batches.list

Выводит список операций, соответствующих указанному фильтру в запросе. Если сервер не поддерживает этот метод, возвращает UNIMPLEMENTED .

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

получить https: / /generativelanguage.googleapis.com /v1beta /{name=batches}

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

string name

Название родительского ресурса операции. Оно имеет вид batches .

Параметры запроса

string filter

Стандартный фильтр списка.

pageSize integer

Стандартный размер страницы списка.

string pageToken

Стандартный токен страницы списка.

returnPartialSuccess boolean

Если установлено значение true , то достижимые операции возвращаются как обычно, а недостижимые — в поле ListOperationsResponse.unreachable .

Это может быть true только при чтении данных из разных коллекций. Например, когда parent установлен на "projects/example/locations/-" .

Это поле не поддерживается по умолчанию и приведет к ошибке UNIMPLEMENTED , если оно задано, если иное явно не указано в документации к конкретной услуге или продукту.

Текст запроса

Тело запроса должно быть пустым.

Ответный текст

В случае успеха тело ответа содержит экземпляр класса ListOperationsResponse .

Метод: batches.cancel

Запускает асинхронную отмену длительной операции. Сервер прилагает все усилия для отмены операции, но успех не гарантируется. Если сервер не поддерживает этот метод, он возвращает google.rpc.Code.UNIMPLEMENTED . Клиенты могут использовать Operations.GetOperation или другие методы, чтобы проверить, была ли отмена успешной или операция завершилась, несмотря на отмену. В случае успешной отмены операция не удаляется; вместо этого она становится операцией со значением Operation.error и google.rpc.Status.code равным 1 , что соответствует Code.CANCELLED .

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

post https: / /generativelanguage.googleapis.com /v1beta /{name=batches /*}:cancel

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

string name

Название ресурса операции, подлежащей отмене. Оно имеет формат batches/{batches} .

Текст запроса

Тело запроса должно быть пустым.

Ответный текст

В случае успеха тело ответа будет представлять собой пустой JSON-объект.

Метод: batches.delet

Удаляет длительную операцию. Этот метод указывает, что клиент больше не заинтересован в результате операции. Он не отменяет операцию. Если сервер не поддерживает этот метод, он возвращает google.rpc.Code.UNIMPLEMENTED .

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

удалить https: / /generativelanguage.googleapis.com /v1beta /{name=batches /*}

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

string name

Название операции, подлежащей удалению. Оно имеет формат batches/{batches} .

Текст запроса

Тело запроса должно быть пустым.

Ответный текст

В случае успеха тело ответа будет представлять собой пустой JSON-объект.

GenerateContentBatch

Ресурс, представляющий собой пакет запросов GenerateContent .

Поля
string model

Обязательно. Название Model , которая будет использоваться для генерации автозавершения.

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

string name

Только вывод. Идентификатор. Имя ресурса пакета.

Формат: batches/{batchId} .

displayName string

Обязательно. Заданное пользователем имя для этой партии.

Объект inputConfig object ( InputConfig )

Обязательно. Введите конфигурацию экземпляров, на которых выполняется пакетная обработка.

output object ( GenerateContentBatchOutput )

Только вывод. Результат пакетного запроса.

createTime string ( Timestamp format)

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

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

endTime string ( Timestamp format)

Только выходные данные. Время завершения пакетной обработки.

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

updateTime string ( Timestamp format)

Только вывод. Время последнего обновления пакета.

Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

Объект batchStats object ( BatchStats )

Только вывод. Статистика по партии.

перечисление state enum ( BatchState )

Только вывод. Состояние пакета.

строка priority string ( int64 format)

Необязательный параметр. Приоритет партии. Партии с более высоким приоритетом будут обрабатываться раньше партий с более низким приоритетом. Допускаются отрицательные значения. Значение по умолчанию — 0.

JSON-представление
{
  "model": string,
  "name": string,
  "displayName": string,
  "inputConfig": {
    object (InputConfig)
  },
  "output": {
    object (GenerateContentBatchOutput)
  },
  "createTime": string,
  "endTime": string,
  "updateTime": string,
  "batchStats": {
    object (BatchStats)
  },
  "state": enum (BatchState),
  "priority": string
}

InputConfig

Настраивает входные данные для пакетного запроса.

Поля
source Union type
Обязательно. Источник входных данных. source может быть только одним из следующих:
string fileName

Имя File , содержащего входные запросы.

объект requests object ( InlinedRequests )

Запросы, подлежащие обработке в пакетном режиме.

JSON-представление
{

  // source
  "fileName": string,
  "requests": {
    object (InlinedRequests)
  }
  // Union type
}

Встроенные запросы

Запросы, подлежащие обработке в пакетном режиме, если они указаны в запросе на создание пакета.

Поля
requests[] object ( InlinedRequest )

Обязательно. Запросы, подлежащие обработке в пакетном режиме.

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

InlinedRequest

Запрос, подлежащий обработке в пакетном режиме.

Поля
объект request object ( GenerateContentRequest )

Обязательно. Запрос, подлежащий обработке в пакетном режиме.

Объект metadata object ( Struct format)

Необязательно. Метаданные, которые будут связаны с запросом.

JSON-представление
{
  "request": {
    object (GenerateContentRequest)
  },
  "metadata": {
    object
  }
}

GenerateContentBatchOutput

Результат пакетного запроса. Он возвращается в поле BatchGenerateContentResponse или GenerateContentBatch.output .

Поля
output Union type
output пакетного запроса может быть только один из следующих вариантов:
responsesFile string

Только вывод. Идентификатор файла, содержащего ответы. Файл будет представлять собой JSONL-файл с одним ответом на строку. Ответы будут представлять собой сообщения GenerateContentResponse в формате JSON. Ответы будут записываться в том же порядке, что и входные запросы.

объект inlinedResponses object ( InlinedResponses )

Только вывод. Ответы на запросы в пакете. Возвращается, если пакет был сформирован с использованием встроенных запросов. Ответы будут в том же порядке, что и входные запросы.

JSON-представление
{

  // output
  "responsesFile": string,
  "inlinedResponses": {
    object (InlinedResponses)
  }
  // Union type
}

Встроенные ответы

Ответы на запросы в пакете.

Поля
объект inlinedResponses[] object ( InlinedResponse )

Только выходные данные. Ответы на запросы в пакете.

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

Встроенный ответ

Ответ на отдельный запрос в пакете.

Поля
Объект metadata object ( Struct format)

Только вывод. Метаданные, связанные с запросом.

output Union type
output запроса может быть только один из следующих вариантов:
объект error object ( Status )

Только вывод. Ошибка, возникшая при обработке запроса.

объект response object ( GenerateContentResponse )

Только вывод. Ответ на запрос.

JSON-представление
{
  "metadata": {
    object
  },

  // output
  "error": {
    object (Status)
  },
  "response": {
    object (GenerateContentResponse)
  }
  // Union type
}

BatchStats

Статистика по партии.

Поля
requestCount string ( int64 format)

Только вывод. Количество запросов в пакете.

successfulRequestCount string ( int64 format)

Только вывод. Количество успешно обработанных запросов.

failedRequestCount string ( int64 format)

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

строка pendingRequestCount string ( int64 format)

Только вывод. Количество запросов, ожидающих обработки.

JSON-представление
{
  "requestCount": string,
  "successfulRequestCount": string,
  "failedRequestCount": string,
  "pendingRequestCount": string
}

Метод: batches.updateEmbedContentBatch

Обновляет пакет запросов EmbedContent для пакетной обработки.

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

патч https: / /generativelanguage.googleapis.com /v1beta /{embedContentBatch.name=batches /*}:updateEmbedContentBatch
PATCH https://generativelanguage.googleapis.com/v1beta/{embedContentBatch.name=batches/*}:updateEmbedContentBatch

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

embedContentBatch.name string

Только вывод. Идентификатор. Имя ресурса пакета.

Формат: batches/{batchId} . Он принимает вид batches/{batches} .

Параметры запроса

строка updateMask string ( FieldMask format)

Необязательный параметр. Список полей для обновления.

Это список полных имен полей, разделенных запятыми. Пример: "user.displayName,photo" .

Текст запроса

Тело запроса содержит экземпляр класса EmbedContentBatch .

Поля
string model

Обязательно. Название Model , которая будет использоваться для генерации автозавершения.

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

displayName string

Обязательно. Заданное пользователем имя для этой партии.

объект inputConfig object ( InputEmbedContentConfig )

Обязательно. Введите конфигурацию экземпляров, на которых выполняется пакетная обработка.

строка priority string ( int64 format)

Необязательный параметр. Приоритет партии. Партии с более высоким приоритетом будут обрабатываться раньше партий с более низким приоритетом. Допускаются отрицательные значения. Значение по умолчанию — 0.

Ответный текст

В случае успеха тело ответа будет содержать экземпляр EmbedContentBatch .

EmbedContentRequest

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

Поля
string model

Обязательно. Имя ресурса модели. Оно служит идентификатором для используемой модели.

Это имя должно совпадать с именем модели, возвращаемым методом ListModels .

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

объект content object ( Content )

Обязательно. Содержимое для встраивания. Учитываться будут только поля parts.text .

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

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

string title

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

Примечание: указание title для RETRIEVAL_DOCUMENT обеспечивает более высокое качество векторных представлений для поиска.

outputDimensionality integer

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

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

Метод: batches.updateGenerateContentBatch

Обновляет пакет запросов GenerateContent для пакетной обработки.

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

патч https: / /generativelanguage.googleapis.com /v1beta /{generateContentBatch.name=batches /*}:updateGenerateContentBatch
PATCH https://generativelanguage.googleapis.com/v1beta/{generateContentBatch.name=batches/*}:updateGenerateContentBatch

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

generateContentBatch.name string

Только вывод. Идентификатор. Имя ресурса пакета.

Формат: batches/{batchId} . Он принимает вид batches/{batches} .

Параметры запроса

строка updateMask string ( FieldMask format)

Необязательный параметр. Список полей для обновления.

Это список полных имен полей, разделенных запятыми. Пример: "user.displayName,photo" .

Текст запроса

Тело запроса содержит экземпляр GenerateContentBatch .

Поля
string model

Обязательно. Название Model , которая будет использоваться для генерации автозавершения.

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

displayName string

Обязательно. Заданное пользователем имя для этой партии.

Объект inputConfig object ( InputConfig )

Обязательно. Введите конфигурацию экземпляров, на которых выполняется пакетная обработка.

строка priority string ( int64 format)

Необязательный параметр. Приоритет партии. Партии с более высоким приоритетом будут обрабатываться раньше партий с более низким приоритетом. Допускаются отрицательные значения. Значение по умолчанию — 0.

Ответный текст

В случае успеха тело ответа будет содержать экземпляр GenerateContentBatch .

GenerateContentRequest

Запрос на генерацию варианта завершения из модели.

Поля
string model

Обязательно. Название Model , которая будет использоваться для генерации автозавершения.

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

contents[] object ( Content )

Обязательно. Содержание текущего разговора с моделью.

Для запросов с одним циклом обработки это один экземпляр. Для запросов с несколькими циклами обработки, таких как чат , это повторяющееся поле, содержащее историю переписки и последний запрос.

tools[] object ( Tool )

Необязательно. Список Tools Model может использовать для генерации следующего ответа.

Tool — это фрагмент кода, позволяющий системе взаимодействовать с внешними системами для выполнения действия или набора действий, выходящих за рамки знаний и области действия Model . Поддерживаемые Tool — это Function и codeExecution . Для получения дополнительной информации обратитесь к руководствам по вызову функций и выполнению кода .

объект toolConfig object ( ToolConfig )

Необязательно. Конфигурация инструмента для любого Tool указанного в запросе. Пример использования см. в руководстве по вызову функций .

safetySettings[] object ( SafetySetting )

Необязательно. Список уникальных экземпляров SafetySetting для блокировки небезопасного контента.

Это будет применяться к GenerateContentRequest.contents и GenerateContentResponse.candidates . Для каждого типа SafetyCategory не должно быть более одной настройки. API будет блокировать любой контент и ответы, которые не соответствуют пороговым значениям, установленным этими настройками. Этот список переопределяет настройки по умолчанию для каждой SafetyCategory , указанной в safetySettings. Если для данной SafetyCategory в списке не указана SafetySetting SafetyCategory , API будет использовать настройку безопасности по умолчанию для этой категории. Поддерживаются категории вреда HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT, HARM_CATEGORY_CIVIC_INTEGRITY. Подробную информацию о доступных настройках безопасности см. в руководстве . Также обратитесь к руководству по безопасности , чтобы узнать, как учитывать соображения безопасности в ваших приложениях ИИ.

объект systemInstruction object ( Content )

Необязательно. Разработчик задает системные инструкции . В настоящее время только текст.

объект generationConfig object ( GenerationConfig )

Необязательно. Параметры конфигурации для генерации модели и выходных данных.

cachedContent string

Необязательно. Название кэшированного контента, используемого в качестве контекста для выполнения прогнозирования. Формат: cachedContents/{cachedContent}

store boolean

Необязательный параметр. Задает поведение логирования для данного запроса. Если задан, он имеет приоритет над конфигурацией логирования на уровне проекта.

JSON-представление
{
  "model": string,
  "contents": [
    {
      object (Content)
    }
  ],
  "tools": [
    {
      object (Tool)
    }
  ],
  "toolConfig": {
    object (ToolConfig)
  },
  "safetySettings": [
    {
      object (SafetySetting)
    }
  ],
  "systemInstruction": {
    object (Content)
  },
  "generationConfig": {
    object (GenerationConfig)
  },
  "cachedContent": string,
  "store": boolean
}

BatchState

Состояние партии.

Перечисления
BATCH_STATE_UNSPECIFIED Состояние пакета не указано.
BATCH_STATE_PENDING Сервис готовится к запуску пакетной обработки.
BATCH_STATE_RUNNING Обработка партии продолжается.
BATCH_STATE_SUCCEEDED Обработка партии прошла успешно.
BATCH_STATE_FAILED Партия не прошла проверку.
BATCH_STATE_CANCELLED Выпуск партии отменен.
BATCH_STATE_EXPIRED Срок годности партии истёк.

REST-ресурс: пакеты

Ресурс: Операция

Этот ресурс представляет собой длительную операцию, являющуюся результатом вызова сетевого API.

Поля
string name

Имя, присвоенное сервером, является уникальным только в рамках той же службы, которая его первоначально вернула. Если используется стандартное HTTP-сопоставление, name должно быть именем ресурса, заканчивающимся на operations/{unique_id} .

object metadata

Метаданные, специфичные для конкретной службы и связанные с операцией. Обычно они содержат информацию о ходе выполнения и общие метаданные, такие как время создания. Некоторые службы могут не предоставлять такие метаданные. Любой метод, возвращающий длительную операцию, должен документировать тип метаданных, если таковые имеются.

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .

done boolean

Если значение равно false , это означает, что операция все еще выполняется. Если true , операция завершена, и доступно либо error , либо response .

result Union type
Результат операции, который может быть либо error , либо допустимым response . Если done == false , то ни error , ни response не устанавливаются. Если done == true , то может быть установлено ровно одно из значений: error или response . Некоторые сервисы могут не предоставлять результат. result может быть только одним из следующих:
объект error object ( Status )

Результат ошибки операции в случае сбоя или отмены.

object response

Обычный, успешный ответ операции. Если исходный метод не возвращает данных в случае успеха, например, Delete , ответ будет иметь тип google.protobuf.Empty . Если исходный метод — стандартный Get / Create / Update , ответ должен представлять собой ресурс. Для других методов ответ должен иметь тип XxxResponse , где Xxx — имя исходного метода. Например, если имя исходного метода — TakeSnapshot() , то предполагаемый тип ответа — TakeSnapshotResponse .

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .

JSON-представление
{
  "name": string,
  "metadata": {
    "@type": string,
    field1: ...,
    ...
  },
  "done": boolean,

  // result
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // Union type
}