RelayForge AI API
RelayForge AI — это serverless AI gateway playground с единым request-контрактом, free-tier-first маршрутизацией провайдеров, стримингом и нормализованной обработкой ошибок.
Обзор продукта
Одна API-поверхность с устойчивым fallback провайдеров.
Поведение стриминга
SSE-события проксируются как нормализованные token-обновления.
Модель ошибок
Единая форма для ошибок валидации и апстрима.
Справочник endpoint-ов
API-поверхность Worker, доступная статическому frontend.
Пример запроса
Типизированный контракт, общий для frontend и Worker.
{
"prompt": "Explain free-tier fallback strategy",
"options": {
"strategy": "auto",
"stream": true,
"maxTokens": 512,
"temperature": 0.35
},
"metadata": {
"source": "relayforge-web"
}
}Пример ответа
Каждый успешный ответ содержит нормализованные provider-метаданные.
{
"success": true,
"data": {
"text": "RelayForge first tries Groq Free...",
"meta": {
"strategy": "auto",
"attemptedProvider": "groq",
"finalProvider": "openrouter",
"fallbackActivated": true,
"degradedMode": true,
"demoMode": false,
"latencyMs": 842,
"model": "meta-llama/llama-3.2-3b-instruct:free",
"timestamp": "2025-01-01T12:00:00.000Z"
}
}
}Примечания по стримингу
POST-стриминг через `fetch` и `text/event-stream`.
Типы событий: `token`, `meta`, `error`, `done`.
Метаданные включают выбранную стратегию, изначальный и финальный провайдер, факт fallback, degraded/demo режим, задержку и модель.
Если stream ломается до первого токена, RelayForge пытается следующий провайдер по приоритету.
Объяснение fallback
Явная оркестрация для надежности на free-tier.
В режиме Auto сначала вызывается Groq.
Timeout, rate-limit, временная недоступность и malformed upstream-ответ переключают запрос на OpenRouter.
Если OpenRouter тоже недоступен или квота закончилась, ответ отдает mock/demo провайдер.
Нормализованный формат ошибки
Ошибки остаются человекочитаемыми и технически корректными без утечки raw stack-trace в UI.
{
"success": false,
"error": {
"code": "provider_rate_limited",
"message": "Groq Free returned a rate-limit response.",
"technicalDetails": "HTTP 429 from upstream provider",
"provider": "groq",
"fallbackActivated": true,
"timestamp": "2025-01-01T12:00:00.000Z"
}
}