IBM Cloud Docs
Streaming depuis une extension

Streaming depuis une extension

Avant de commencer

Si vous souhaitez activer le streaming sur webchat, procédez comme suit :

  • Allez dans Home > Preview > Personnaliser le web chat.
  • Cliquez sur l'onglet Styles.
  • Réglez le bouton Streaming sur On.
  • Cliquez sur Sauvegarder et quitter.

Comment diffuser en continu à partir d'une extension

Vous pouvez suivre les étapes décrites dans Appeler l'extension personnalisée. Si le sélectionné Opération définit text/event-stream comme réponse content-type, la fonctionnalité permet alors la sélection du texte à diffuser à partir du SSE généré par l'opération.

Streaming depuis une extension
Streaming depuis une extension

Si votre opération génère des événements envoyés par le serveur comme dans les exemples suivants :

data: {"model_id":"ibm/granite-13b-chat-v2","created_at":"2024-07-01T21:49:29.696Z","results":[{"generated_text":"to lear","generated_token_count":10,"input_token_count":0,"stop_reason":"not_finished"}]}

data: {"model_id":"ibm/granite-13b-chat-v2","created_at":"2024-07-01T21:49:29.731Z","results":[{"generated_text":"n ne","generated_token_count":11,"input_token_count":0,"stop_reason":"not_finished"}]}

data: {"model_id":"ibm/granite-13b-chat-v2","created_at":"2024-07-01T21:49:29.767Z","results":[{"generated_text":"w skill","generated_token_count":12,"input_token_count":0,"stop_reason":"not_finished"}]}

Spécifiez text comme chemin JSON dans watsonx Assistant pour indiquer où le texte ou le jeton est extrait de chaque ESS. Dans l'exemple précédent,results[0].generated_text est le chemin à partir duquel le texte est extrait, ce qui donne :to learn new.

Exécution du flux

Lorsque l'extension personnalisée est appelée, watsonx Assistant tente un appel pour diffuser du texte à partir de l'opération spécifiée. L'étape suivante s'exécute uniquement une fois le flux terminé avec succès ou si une erreur se produit avant le début du streaming. Si le flux se termine avec succès, le texte diffusé est stocké dans le .body propriété de la variable résultat.

Vous pouvez accéder aux propriétés du dernier événement du flux en faisant référence à la propriété .last_event. Par exemple, utilisez ${step_596_result_1.last_event.citations} pour récupérer des données spécifiques.

Vérification du succès ou de l'échec

Utilisez le Ran successfully variable de réponse pour vérifier si le flux se termine avec succès ou pour gérer les cas où le flux ne démarre pas. Cette variable renvoie une valeur booléenne (vrai ou faux). C'est true si le flux se termine avec succès et false si le flux ne démarre pas. Pour plus de détails sur le conditionnement basé sur le statut HTTP, voir Conditionnement sur le statut HTTP pour vérifier comment conditionner.

Si le flux échoue après son démarrage en raison de problèmes de réseau ou s'il atteint le délai d'expiration maximum de 30 secondes, une erreur sera générée pour l'utilisateur.