unsloth/studio/backend/core/inference
Daniel Han 961720c1b1 studio: handle reasoning_content in GGUF streaming
llama-server sends thinking/reasoning tokens as "reasoning_content"
in the SSE delta (separate from "content"). The studio was only
reading delta.content, so all reasoning tokens from models like
Qwen3.5, Qwen3-Thinking, DeepSeek-R1, etc. were silently dropped.

This caused "replies with nothing" for thinking models: the model
would spend its entire token budget on reasoning, produce zero
content tokens, and the user would see an empty response.

Fix: read reasoning_content from the delta and wrap it in
<think>...</think> tags. The frontend already has full support
for these tags (parse-assistant-content.ts splits them into
reasoning parts, reasoning.tsx renders a collapsible "Thinking..."
indicator).

Verified with Qwen3.5-27B-GGUF (UD-Q4_K_XL):
  - Before: "What is 2+2?" -> empty response (all tokens in reasoning)
  - After: shows collapsible thinking + answer "4"
2026-03-15 05:24:06 -07:00
..
__init__.py Final cleanup 2026-03-12 18:28:04 +00:00
audio_codecs.py Final cleanup 2026-03-12 18:28:04 +00:00
inference.py Fix: Compare Mode Deadlock, Cancel Event Poisoning & IPC Optimization (#4303) 2026-03-15 16:11:44 +04:00
llama_cpp.py studio: handle reasoning_content in GGUF streaming 2026-03-15 05:24:06 -07:00
orchestrator.py Fix: Compare Mode Deadlock, Cancel Event Poisoning & IPC Optimization (#4303) 2026-03-15 16:11:44 +04:00
worker.py Final cleanup 2026-03-12 18:28:04 +00:00