Structured outputs
OpenAI response_format переводится в constrained output Triton/vLLM для JSON object и строгой JSON Schema.
API & workloads
Gateway унифицирует клиентский контракт, но сохраняет различия моделей: modality, chat template, context policy и post-processing настраиваются отдельно.
Gateway не эмулирует возможности, которых нет у модели. Он маршрутизирует, ограничивает и приводит поддерживаемый результат к знакомому контракту.
Новое в v0.3.0
OpenAI response_format переводится в constrained output Triton/vLLM для JSON object и строгой JSON Schema.
Seed воспроизводит sampling; system messages нормализуются, а token limit возвращает finish_reason=length.
Большой список документов делится на последовательные micro-batch с сохранением индексов и меньшим риском CUDA OOM.
BGE-M3 работает через native vLLM pooling или полностью офлайн Python fallback.
API surface
Проведите влево, чтобы увидеть остальные столбцы
| Класс | Endpoint | Назначение | Streaming | Что делает gateway |
|---|---|---|---|---|
| OpenAI-compatible | POST /v1/chat/completions | Chat, tools и media | SSE | Chat template, response_format, seed, context, reasoning, media routing, cancellation |
| OpenAI-compatible | GET /v1/models | Список моделей | — | Нормализует модели, известные Triton repository |
| OpenAI-compatible | POST /v1/embeddings | Text embeddings | — | Маршрутизирует pooling-модель и OpenAI-style input |
| Gateway extension | POST /v1/hybrid_embeddings | BGE-M3 dense + sparse | — | Проверяет output_types и маршрутизирует native pooling или Python fallback |
| Gateway API | POST /rerank · /v1/rerank · /v2/rerank | Reranking | — | Bounded micro-batching, scoring, selection strategy, metadata и threshold |
| Operations | GET /health · /ready · /metrics · /docs | Эксплуатация | — | Process health, Triton readiness, gateway metrics и OpenAPI docs |
Workload matrix
Проведите влево, чтобы увидеть остальные столбцы
| Нагрузка | Backend / поддержка | Pipeline | Ключевое ограничение |
|---|---|---|---|
| Text chat | Triton vLLM / multimodal | Messages → chat template → tokens | Context и output reserve должны помещаться в max_model_len |
| Images | Нативный vLLM input | Fetch/decode → limits → model input | Архитектура модели должна поддерживать vision |
| Video | Native или frame pipeline | Frames → chunking → reduce | FPS, frames и pixel budget ограничиваются |
| Audio | Native или local ASR | Decode → ASR → chat | Нужна audio-capable модель или настроенная ASR |
| Text / vision / retrieval | Extract/render → chunks → map/reduce | Pages, pixels, chunks и token budget ограничиваются | |
| Embeddings | Pooling models | Input → Triton pooling | Зависит от загруженной embedding-модели |
| Hybrid embeddings | BGE-M3 | Input → dense + lexical sparse | Расширение gateway; для LiteLLM нужен явный pass-through |
| Rerank | Rerank models | Micro-batches → score all → selection | Selection не заменяет качество scoring-модели |
Honest boundaries
Клиент получает tool_calls, выполняет функцию и возвращает результат сообщением role: tool.
Authentication, authorization, TLS и tenant quotas должны находиться на внешнем proxy/API gateway.
Model repository и совместимая NVIDIA GPU-инфраструктура остаются ответственностью оператора.
Поддержка изображения, аудио или видео зависит от конкретной модели и закреплённого runtime.
Метрики и traces не передают prompts, media, ответы, tool results или reasoning content. DEBUG_LOG_PAYLOADS включайте только для контролируемой диагностики: preview может содержать пользовательские данные.
Архитектурная страница показывает trust boundary, flow запроса и роль каждого компонента.