stream: true, valeur par défaut de POST /api/v1/responses) utilise un ReadableStream HTTP côté serveur.
Format
- Content-Type :
text/html; charset=utf-8 - Chaque chunk contient un fragment de texte de la réponse de l’agent, encodé en UTF-8.
- Le flux se termine par le marqueur
:EOS:(End Of Stream). - Le timeout serveur est de 120 secondes (
maxDuration). Si l’agent met plus longtemps à répondre, la connexion sera coupée.
Backpressure
Le serveur utilise le mécanismepull() du ReadableStream : les chunks sont mis en file d’attente et envoyés dès que le client est prêt à les consommer. Si le client lit lentement, le serveur met les données en tampon.
Interruption
Si le client ferme la connexion (signalabort), le serveur interrompt la génération et pousse un message d’abandon dans le flux avant de le fermer.
Multipart/form-data
Le streaming fonctionne aussi avec un envoimultipart/form-data (pour joindre des fichiers). Les champs texte (companyIdentifier, agentUUID, question, stream) sont lus depuis le FormData, et les fichiers sont convertis en data: URL base64 avant d’être transmis à l’assistant.