Hubris
API Reference

POST /v1/responses (BETA)

OpenAI Responses API endpoint. Schema нестабильна, использовать с осторожностью.

POST /v1/responses

BETA. Структура входа и выхода может измениться без major-bump-а API. В продакшене используйте только если знаете что делаете и готовы к адаптации.

/v1/responses — это альтернативный stateless-эндпоинт OpenAI Responses API. Подходит для моделей, у которых появляются новые типы output-блоков (например, reasoning у o-серии или multimodal-выход), и для абстракций, где нужен более гибкий контейнер ответа чем chat.completion.

Когда использовать

Чаще всего вам нужен /v1/chat/completions — он совместим с большинством OpenAI-инструментов. /v1/responses стоит выбрать только если:

  • Вы хотите использовать reasoning-модели (o1, o3, Claude Thinking) с явным контролем reasoning-блоков.
  • Вы строите agent-фреймворк, которому нужен унифицированный контейнер для разных типов output.
  • Конкретный провайдер требует именно этот формат.

В остальных случаях используйте POST /v1/chat/completions.

Минимальный запрос

curl -s https://api.hubris.pw/v1/responses \
  -H "Authorization: Bearer sk-gw-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "input": "Привет, как дела?"
  }'

input может быть строкой или массивом блоков — передаваемый формат зависит от модели.

Ответ

Вернётся объект с типом response:

{
  "id": "resp_abc123",
  "object": "response",
  "created_at": 1714000000,
  "model": "openai/gpt-4o-mini",
  "output": [...],
  "usage": {
    "input_tokens": 8,
    "output_tokens": 12,
    "total_tokens": 20
  },
  "status": "completed"
}

Точная структура output зависит от модели и версии — может содержать text, reasoning, tool_call и другие блоки. Hubris проксирует ответ как есть от провайдера, без нормализации.

Стриминг

Поддерживается через stream: true. Финальный chunk содержит событие response.completed с полным объектом response и usage. Hubris списывает стоимость из этого финального события (или fallback на оценку, если событие не пришло).

Биллинг

Стоимость считается так же, как для /v1/chat/completions: входные + выходные токены × цены модели в ₽. Reasoning-токены (если модель их использует) учитываются в output_tokens и тарифицируются как обычные completion-токены.

Что дальше