stream: true pour recevoir la sortie sous forme d’événements envoyés par le serveur (SSE). Gardez votre clé API Phaseo sur le serveur et transmettez la sortie à l’interface.
Envoyer une requête en streaming
Lire les événements
Utilisez le format d’événements du point d’accès appelé :
Les événements SSE sont séparés par des lignes vides. Un fragment réseau peut contenir une partie d’événement ou plusieurs événements ; ne l’analysez pas comme un JSON autonome. Mettez en tampon les trames incomplètes ou utilisez un outil de streaming du SDK. Ne supposez pas que chaque point d’accès envoie
[DONE].
Les outils du SDK gèrent le transport du flux :
- TypeScript:
streamResponses(),streamChat(),streamMessages(). - Python:
stream_responses(),stream_chat(),stream_message(). - Vercel AI SDK:
streamText()avec@phaseo/ai-sdk-provider.
Diffuser les appels d’outils
Le Gateway accepte le streaming avec des outils, mais sa prise en charge dépend du modèle et du fournisseur choisis. Accumulez les fragments d’arguments jusqu’à la fin de l’appel, puis analysez, validez et autorisez les arguments avant l’exécution. N’exécutez jamais des arguments partiels. Suivez les schémas d’appels d’outils pour les requêtes de continuation et la sécurité des outils pour les contrôles de validation et d’approbation.Annuler et récupérer
Passez unAbortSignal au client HTTP serveur et annulez quand l’utilisateur arrête ou se déconnecte. Fixez une échéance adaptée. L’annulation ne garantit ni l’arrêt immédiat du fournisseur ni la gratuité de la sortie générée.
Affichez progressivement le texte partiel, mais ne marquez la réponse terminée qu’après l’événement final réussi du point d’accès. Une connexion fermée ne prouve pas son achèvement.
Si le flux échoue après le début de la sortie :
- Marquez la réponse partielle comme interrompue.
- Conservez l’identifiant de requête ou de génération, le point d’accès et le modèle dans vos journaux.
- Proposez une nouvelle tentative explicite. Une nouvelle requête peut générer une autre sortie et de nouveaux frais.
- Ne réexécutez pas les outils déjà exécutés et n’ajoutez pas automatiquement la nouvelle réponse à la sortie partielle.