Afficher une chronologie diffusée
Types d’éléments TypeScript
AgentItem<TOutput> est une union discriminée, et TypeScript affine le type de chaque élément d’après son type :
Les éléments construits à partir de la sortie du fournisseur conservent aussi la charge utile d’origine dans
rawProviderItem, pour le rare champ que les types portables ne transportent pas. Construisez la logique produit sur les champs portables, car rawProviderItem diffère selon le fournisseur.
Types d’événements dans les autres langages
Go, C#, PHP, Ruby et Java fournissent les mêmes types d’événements. Leitem_stream() de Python produit les éléments du fournisseur et du runtime sous forme de dicts avec une clé type.
L’emplacement des champs diffère selon le langage :
Aucune de ces formes n’est une union typée : validez donc les champs qu’utilise votre interface, isolez l’analyse propre à chaque fournisseur derrière un seul adaptateur et gardez un cas par défaut pour les types inconnus. En Go, C# et Java, les événements de flux du modèle portent l’ID d’exécution
"stream" ; utilisez les événements de cycle de vie pour obtenir le véritable ID d’exécution. La liste complète des événements de cycle de vie se trouve dans Hooks de cycle de vie.
Reconstruire une chronologie après l’exécution
L’historique des événements reste lisible après la fin de l’exécution ; un consommateur peut donc afficher pendant qu’un autre persiste les événements, sans seconde requête au modèle. Pour une chronologie durable, stockez le résultat d’exécution terminé :- TypeScript
- Python
- Go
- C#
- PHP
- Ruby
- Java
- Rust
Le résultat terminé contient, dans
items, les mêmes éléments ordonnés que le flux :