API & workloads

Один API для разных классов AI-задач

Gateway унифицирует клиентский контракт, но сохраняет различия моделей: modality, chat template, context policy и post-processing настраиваются отдельно.

Главный принцип

Gateway не эмулирует возможности, которых нет у модели. Он маршрутизирует, ограничивает и приводит поддерживаемый результат к знакомому контракту.

Новое в v0.3.0

Structured outputs и hybrid retrieval поверх прежнего API

01json_object · json_schema

Structured outputs

OpenAI response_format переводится в constrained output Triton/vLLM для JSON object и строгой JSON Schema.

02seed · system · finish_reason

Deterministic chat

Seed воспроизводит sampling; system messages нормализуются, а token limit возвращает finish_reason=length.

03bounded micro-batches

Rerank batching

Большой список документов делится на последовательные micro-batch с сохранением индексов и меньшим риском CUDA OOM.

04dense · lexical sparse

Hybrid embeddings

BGE-M3 работает через native vLLM pooling или полностью офлайн Python fallback.

API surface

Поддерживаемый API surface и роль gateway

Проведите влево, чтобы увидеть остальные столбцы

Поддерживаемый API surface и роль gateway
КлассEndpointНазначениеStreamingЧто делает gateway
OpenAI-compatiblePOST /v1/chat/completionsChat, tools и mediaSSEChat template, response_format, seed, context, reasoning, media routing, cancellation
OpenAI-compatibleGET /v1/modelsСписок моделей—Нормализует модели, известные Triton repository
OpenAI-compatiblePOST /v1/embeddingsText embeddings—Маршрутизирует pooling-модель и OpenAI-style input
Gateway extensionPOST /v1/hybrid_embeddingsBGE-M3 dense + sparse—Проверяет output_types и маршрутизирует native pooling или Python fallback
Gateway APIPOST /rerank · /v1/rerank · /v2/rerankReranking—Bounded micro-batching, scoring, selection strategy, metadata и threshold
OperationsGET /health · /ready · /metrics · /docsЭксплуатация—Process health, Triton readiness, gateway metrics и OpenAPI docs

Workload matrix

Как обрабатываются разные входы

Проведите влево, чтобы увидеть остальные столбцы

Как обрабатываются разные входы
НагрузкаBackend / поддержкаPipelineКлючевое ограничение
Text chatTriton vLLM / multimodalMessages → chat template → tokensContext и output reserve должны помещаться в max_model_len
ImagesНативный vLLM inputFetch/decode → limits → model inputАрхитектура модели должна поддерживать vision
VideoNative или frame pipelineFrames → chunking → reduceFPS, frames и pixel budget ограничиваются
AudioNative или local ASRDecode → ASR → chatНужна audio-capable модель или настроенная ASR
PDFText / vision / retrievalExtract/render → chunks → map/reducePages, pixels, chunks и token budget ограничиваются
EmbeddingsPooling modelsInput → Triton poolingЗависит от загруженной embedding-модели
Hybrid embeddingsBGE-M3Input → dense + lexical sparseРасширение gateway; для LiteLLM нужен явный pass-through
RerankRerank modelsMicro-batches → score all → selectionSelection не заменяет качество scoring-модели

Honest boundaries

Что проект намеренно не делает

Не выполняет tools

Клиент получает tool_calls, выполняет функцию и возвращает результат сообщением role: tool.

Не добавляет user auth

Authentication, authorization, TLS и tenant quotas должны находиться на внешнем proxy/API gateway.

Не включает веса

Model repository и совместимая NVIDIA GPU-инфраструктура остаются ответственностью оператора.

Не гарантирует modality

Поддержка изображения, аудио или видео зависит от конкретной модели и закреплённого runtime.

Telemetry без payload по умолчанию

Метрики и traces не передают prompts, media, ответы, tool results или reasoning content. DEBUG_LOG_PAYLOADS включайте только для контролируемой диагностики: preview может содержать пользовательские данные.

Посмотрите, где проходит граница ответственности

Архитектурная страница показывает trust boundary, flow запроса и роль каждого компонента.

Перейти к архитектуреGitHub