SGLang
Конвертация SGL/SGLang API в Meridian — OpenAI-совместимый формат, обработка параметров, streaming, поддержка tools.
Обзор
SGL (SGLang) — это OpenAI-совместимый локальный/удалённый inference engine, используемый для обслуживания моделей с высоким throughput. Meridian делегирует все операции реализации провайдера OpenAI. Ключевые особенности:
- OpenAI API совместимость — идентичный формат request/response;
- Полная поддержка streaming — Server-Sent Events с трекингом usage;
- Tool calling — полные определения функций и вызовы;
- Текстовые embeddings — поддержка embedding-моделей;
- Фильтрация параметров — удаление неподдерживаемых полей для совместимости.
Поддерживаемые операции
| Операция | Non-Streaming | Streaming | Endpoint |
|---|---|---|---|
| Chat Completions | ✅ | ✅ | /v1/chat/completions |
| Responses API | ✅ | ✅ | /v1/chat/completions |
| Text Completions | ✅ | ✅ | /v1/completions |
| Embeddings | ✅ | — | /v1/embeddings |
| List Models | ✅ | — | /v1/models |
| Image Generation | ❌ | ❌ | — |
| Speech (TTS) | ❌ | ❌ | — |
| Transcriptions (STT) | ❌ | ❌ | — |
| Files | ❌ | ❌ | — |
| Batch | ❌ | ❌ | — |
Неподдерживаемые операции (❌): Speech, Transcriptions, Files и Batch не поддерживаются upstream-API SGL. Возвращают UnsupportedOperationError.
SGL обычно self-hosted. Убедитесь, что BaseURL настроен корректно и указывает на ваш SGL-инстанс (например, http://localhost:8000).
1. Chat Completions
Параметры запроса
SGL поддерживает все стандартные параметры OpenAI chat completion. Полный справочник параметров и поведение — см. OpenAI Chat Completions.
Фильтруемые параметры
Удаляются для совместимости с SGL:
prompt_cache_key— не поддерживается;verbosity— специфично для Anthropic;store— не поддерживается;service_tier— специфично для OpenAI.
SGL поддерживает все стандартные OpenAI-типы сообщений, tools, responses и форматы streaming. Подробности об обработке сообщений, конвертации tools, responses и streaming — см. OpenAI Chat Completions.
2. Responses API
Fallback на Chat Completions с конвертацией формата:
ResponsesRequest → ChatRequest → конвертация ответаТа же поддержка параметров, что и в Chat Completions.
3. Text Completions
SGL поддерживает legacy-формат text completion:
| Параметр | Маппинг |
|---|---|
prompt | Прямой проброс |
max_tokens | max_tokens |
temperature, top_p | Прямой проброс |
frequency_penalty, presence_penalty | Поддерживаются |
4. Embeddings
SGL поддерживает текстовые embeddings для генерации векторов:
| Параметр | Примечания |
|---|---|
input | Текст или массив текстов |
model | Имя embedding-модели |
encoding_format | "float" или "base64" |
dimensions | Размерность, зависит от модели |
Ответ возвращает векторы embeddings с информацией об usage.
5. List Models
Перечисляет доступные модели с SGL-сервера вместе с их возможностями.
Неподдерживаемые возможности
| Возможность | Причина |
|---|---|
| Speech/TTS | Не предоставляется SGL API |
| Transcription/STT | Не предоставляется SGL API |
| Batch Operations | Не предоставляется SGL API |
| File Management | Не предоставляется SGL API |
SGL требует настройки BaseURL, указывающего на ваш SGL-инстанс (например, http://localhost:8000 для локального или https://sgl.example.com для удалённого).