Перейти к содержимому
Форматы API

Open Responses

Открытая спецификация на основе Responses API и подключение совместимых клиентов к Veda AI Gateway.

Open Responses это открытая спецификация для вызова языковых моделей у разных поставщиков через один интерфейс. Она построена на формате OpenAI Responses и описывает общую схему: сообщения и другие элементы ввода и вывода, вызовы инструментов, мультимодальный ввод и единый набор потоковых событий.

Veda AI Gateway принимает запросы в формате Responses на маршруте /v1/responses. Клиенту Open Responses, которому можно задать адрес и ключ, достаточно указать Veda как сервер.

Подключение клиента

ПараметрЗначение
Базовый адрес$VEDA_BASE_URL/v1
МаршрутPOST /v1/responses
АутентификацияAuthorization: Bearer $VEDA_API_KEY
МодельИдентификатор из каталога, например anthropic/claude-sonnet-5.5

Первый запрос

В Open Responses ввод обычно передаётся массивом элементов. Элемент сообщения имеет type: "message", роль и содержимое.

const response = await fetch(`${process.env.VEDA_BASE_URL}/v1/responses`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VEDA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "anthropic/claude-sonnet-5.5",
    input: [{ type: "message", role: "user", content: "Какая столица у Франции?" }],
  }),
});

if (!response.ok) throw new Error(`Veda: ${response.status} ${await response.text()}`);

const result = await response.json();
for (const item of result.output) {
  if (item.type !== "message") continue;
  for (const part of item.content) if (part.type === "output_text") console.log(part.text);
}

Элементы вывода

Ответ содержит массив output. Каждый элемент имеет type:

Тип элементаСодержимое
messageОтвет модели: части output_text с текстом
function_callВызов функции: name, arguments в JSON и call_id
reasoningРассуждение модели, если модель его возвращает

Чтобы продолжить диалог, добавьте элементы output в следующий input вместе с новым сообщением пользователя. Результат функции отправляется элементом function_call_output с тем же call_id.

Возможности

Open Responses использует те же поля, что и Responses. Их использование с Veda описано на странице OpenAI Responses:

  • потоковая передача с "stream": true и событиями response.output_text.delta, response.completed;
  • вызов инструментов через tools и элементы function_call;
  • структурированный вывод через text.format;
  • рассуждения через reasoning;
  • изображения на входе через части input_image.

Каждая возможность работает, если её поддерживает выбранная модель. Поля, которые спецификация добавляет сверх формата Responses, проверьте на своей модели перед использованием в продакшене.

Ошибки

Ошибки проверки ключа и лимитов приходят в формате { "error": { "code": ..., "message": ... } }: 401 неверный или неактивный ключ, 402 лимит расходов, 429 ограничение частоты. Полный список в обзоре API.

На этой странице