diff --git a/internal/api/handlers_chat.go b/internal/api/handlers_chat.go index cf69338..869bd49 100644 --- a/internal/api/handlers_chat.go +++ b/internal/api/handlers_chat.go @@ -73,8 +73,20 @@ RÈGLES ABSOLUES: flusher, canFlush := w.(http.Flusher) result, err := orb.SendStream(body.Message, func(chunk string) { - // Skip thinking tags - user doesn't see them if strings.HasPrefix(chunk, "" { + data, _ := json.Marshal(map[string]string{"thinking_end": "true"}) + w.Write([]byte("data: " + string(data) + "\n\n")) + if canFlush { + flusher.Flush() + } return } data, _ := json.Marshal(map[string]string{"content": chunk}) diff --git a/web/src/api/client.js b/web/src/api/client.js index 594f1a4..f8b43db 100644 --- a/web/src/api/client.js +++ b/web/src/api/client.js @@ -68,7 +68,9 @@ const api = { if (data.done) { resolve(full); return } if (data.content) { full += data.content - if (onChunk) onChunk(full) + if (onChunk) onChunk(full, data) + } else if (data.thinking !== undefined || data.thinking_end) { + if (onChunk) onChunk(full, data) } } catch {} }