ストリーミングしたタイムラインを表示する
TypeScript のアイテムの型
AgentItem<TOutput> は判別可能なユニオンで、TypeScript は各アイテムを type から型を絞り込みます。
プロバイダーの出力から作られたアイテムは、移植可能な型に含まれないまれなフィールドのために、元のペイロードを
rawProviderItem にも保持します。rawProviderItem はプロバイダーによって異なるため、製品のロジックは移植可能なフィールドの上に組み立ててください。
その他の言語のイベントの種類
Go、C#、PHP、Ruby、Java は同じ種類のイベントを返します。Python のitem_stream() は、プロバイダーとランタイムのアイテムを type キーを持つ dict として返します。
フィールドの置き場所は言語によって異なります。
どれも型付きのユニオンではないため、UI が使うフィールドは検証し、プロバイダー固有のパースは1つのアダプターの裏にまとめ、不明な種類へのフォールバックを残してください。Go、C#、Java では、モデルのストリームイベントの実行 ID は
"stream" です。実際の実行 ID にはライフサイクルイベントを使います。ライフサイクルイベントの全一覧はライフサイクルフックにあります。
実行後にタイムラインを組み立て直す
イベントの履歴は実行が終わった後も読めるため、2回目のモデルリクエストなしで、1つのコンシューマーが表示し、別のコンシューマーがイベントを永続化できます。永続的なタイムラインには、完了した実行結果を保存してください。- TypeScript
- Python
- Go
- C#
- PHP
- Ruby
- Java
- Rust
完了した結果の
items には、ストリームと同じ順序のアイテムが入っています。