# SGLang reasoning parser: как отделить рассуждение от ответа

Источник: https://modelium.tech/zhurnal/sglang-reasoning-parser/

Если приложение показывает промежуточные рассуждения Qwen3 вместо ответа, сервер SGLang может разделить их парсером `qwen3`. Для конкретной Qwen3-0.6B проверяйте в ответе локального интерфейса (API) поля `reasoning_content` и `content` по отдельности. Путь ниже требует Linux, совместимой видеокарты NVIDIA (GPU) и подготовки Python; редакция сверила инструкцию с документацией, но не запускала модель.

**Инженерный уровень, не домашний рецепт.** Инструкция по документации SGLang на Git-ревизии `f3b5a28` и карточке Qwen на ревизии `c1899de`; Modelium не устанавливал пакет, не загружал веса и не запускал модель. Нужны Linux, совместимая видеокарта NVIDIA (GPU) и CUDA 13-совместимый драйвер. Установка и первая загрузка весов требуют интернета; запрос к `127.0.0.1` локален, но офлайн-изоляция всего процесса здесь не проверялась. [s2](#src-s2) [s3](#src-s3) [s5](#src-s5)

## Что вы получите?

Локальному приложению дали заметку: «В пятницу Анна принесёт черновик». Оно должно показать поручение и срок, а не промежуточные мысли модели. **Reasoning parser** — обработчик на сервере SGLang, который для совместимой модели отделяет такой промежуточный текст в `reasoning_content` от финального `content`. Это не проверка истинности ответа и не парсер вызова инструментов. В отличие от [аналогичного режима vLLM](/zhurnal/vllm-reasoning-parser/), **имя поля SGLang — именно **`**reasoning_content**`, а не `reasoning`. [s1](#src-s1) [s4](#src-s4)

## Что подготовить перед запуском?

Этот один путь использует Linux, Python 3.12, `uv` и NVIDIA GPU с драйвером, совместимым с CUDA 13; установите `uv` по [официальной инструкции проекта](https://docs.astral.sh/uv/getting-started/installation/). Модель — `**Qwen/Qwen3-0.6B**`, а не произвольная Qwen. Её карточка прямо приводит команду SGLang с `--reasoning-parser qwen3`; лицензия репозитория — Apache 2.0, но при распространении прочтите сам текст лицензии и notices. [s2](#src-s2) [s5](#src-s5) [s6](#src-s6)

Документация не даёт одного достоверного минимального объёма RAM, VRAM и свободного диска для этой связки на любом компьютере. Размер файлов модели не равен требованиям к памяти во время работы: проверьте свой GPU и оставьте место под пакеты и веса, не полагаясь на число параметров `0.6B`. Это не инструкция для обычного Windows или Mac; если сервер не запускается на вашем оборудовании, сначала пройдите [базовый гайд SGLang](/zhurnal/sglang/). [s2](#src-s2) [s3](#src-s3) [s5](#src-s5)

## Как увидеть два поля ответа?

- В терминале Linux после установки `uv` создайте рабочую папку и последовательно выполните `uv venv --python 3.12`, `source .venv/bin/activate`, `uv pip install --prerelease=allow sglang`. Дождитесь завершения установки без ошибок. Это подтверждает установку пакета, **не** запуск модели. [s2](#src-s2) [s3](#src-s3)

- В том же окружении выполните `sglang serve Qwen/Qwen3-0.6B --host 127.0.0.1 --port 30000 --reasoning-parser qwen3`. Адрес оставляет HTTP-сервер доступным только на этом компьютере; при первом старте модель может скачиваться из Hugging Face. Дождитесь сообщения `The server is fired up and ready to roll!`. Команда из карточки модели подтверждает пару Qwen3-0.6B и `qwen3`; ограничение интерфейса `127.0.0.1` здесь добавлено редакцией для локальной проверки. [s1](#src-s1) [s3](#src-s3) [s5](#src-s5)

- Во втором терминале того же компьютера отправьте учебную заметку: `curl -sS http://127.0.0.1:30000/v1/chat/completions -H 'Content-Type: application/json' -d '{"model":"Qwen/Qwen3-0.6B","messages":[{"role":"user","content":"Заметка: В пятницу Анна принесёт черновик. Назови поручение и срок, не выдумывай дату."}],"max_tokens":512,"stream":false,"chat_template_kwargs":{"enable_thinking":true},"separate_reasoning":true}'`. Это локальный запрос к OpenAI-совместимому интерфейсу **SGLang**, не к облачному OpenAI. [s1](#src-s1) [s3](#src-s3) [s4](#src-s4)

- В текстовом ответе JSON (данные с именованными полями) найдите `choices[0].message.content`: там должен быть ответ про черновик Анны и пятницу, без придуманного числа месяца. В `choices[0].message.reasoning_content` проверяйте только наличие и отделение промежуточного текста; не копируйте его в пользовательский ответ. Эти слова — **критерий сверки с нашей заметкой**, а не будто бы полученный Modelium ответ модели. Парсер разделяет вывод; переключатель `enable_thinking` разрешает модели рассуждать, но сам парсер не заставляет её это делать. [s1](#src-s1) [s4](#src-s4) [s5](#src-s5)

## Если рассуждение не отделилось

Сначала проверьте сообщение о готовности сервера и точный `model` в запросе. Затем — `--reasoning-parser qwen3`, `chat_template_kwargs.enable_thinking=true` и `separate_reasoning=true`: выключенный режим рассуждения, преждевременная остановка генерации или неподходящий парсер могут оставить поле пустым. Увеличение `max_tokens` — диагностический шаг, не гарантия появления текста. Не переносите сюда имя `deepseek_r1` из vLLM: имена парсеров у серверов различаются. Для прекращения работы нажмите `Ctrl+C` в терминале сервера. [s1](#src-s1) [s3](#src-s3) [s4](#src-s4)

Если задача — просто получить ответ на домашнем компьютере без GPU-сервера и Python, эта инженерная конфигурация избыточна. Для первого шага откройте [обычный запуск SGLang](/zhurnal/sglang/) только если вам нужен этот сервер; промежуточные рассуждения не заменяют проверку фактов человеком. [s1](#src-s1) [s3](#src-s3)

## Источники

1. [SGLang Reasoning Parser: qwen3, separate_reasoning и поля ответа](https://raw.githubusercontent.com/sgl-project/sglang/f3b5a28f4315767261d439baf4705f2049d8871f/docs/docs/advanced_features/separate_reasoning.mdx) — получено 2026-10-07
2. [SGLang Installation: Linux, NVIDIA, Python и uv](https://raw.githubusercontent.com/sgl-project/sglang/f3b5a28f4315767261d439baf4705f2049d8871f/docs/docs/get-started/install.mdx) — получено 2026-10-07
3. [SGLang Quickstart: запуск и проверка локального API](https://raw.githubusercontent.com/sgl-project/sglang/f3b5a28f4315767261d439baf4705f2049d8871f/docs/docs/get-started/quickstart.mdx) — получено 2026-10-07
4. [SGLang Chat Completions: enable_thinking и Qwen3](https://raw.githubusercontent.com/sgl-project/sglang/f3b5a28f4315767261d439baf4705f2049d8871f/docs/docs/basic_usage/openai_api_completions.mdx) — получено 2026-10-07
5. [Qwen/Qwen3-0.6B: карточка автора и пример SGLang](https://huggingface.co/Qwen/Qwen3-0.6B/blob/c1899de289a04d12100db370d81485cdf75e47ca/README.md) — получено 2026-10-07
6. [Qwen/Qwen3-0.6B: текст лицензии Apache 2.0](https://huggingface.co/Qwen/Qwen3-0.6B/blob/c1899de289a04d12100db370d81485cdf75e47ca/LICENSE) — получено 2026-10-07
