Con TsgcAIChat, delta già decodificati
Chiama ChatStream invece di Chat e gestisci OnChatStream. Il componente chiede al provider una risposta in streaming, interpreta ogni Server-Sent Event e ti passa aChunk, che è il testo nuovo e nient'altro. Tu lo accodi, e l'implementazione finisce qui.
Ogni provider trasmette in streaming una forma JSON diversa. OpenAI, DeepSeek, Ollama, Grok e Mistral mettono il testo in choices[0].delta.content, Claude in delta.text, Gemini ancora più in profondità dentro candidates. TsgcAIChat sa già quale si applica al provider che hai selezionato, quindi il tuo handler non vede mai il JSON.
Imposta Cancel a True dentro l'handler per fermare una risposta fuori controllo. A quel punto la richiesta viene abbandonata e non arrivano altri chunk. Quando lo stream termina, il testo assemblato viene aggiunto alla cronologia e restituito da ChatStream, e OnChatMessage scatta una volta con la risposta completa.