Renderize uma linha do tempo transmitida
Tipos de item no TypeScript
AgentItem<TOutput> é uma união discriminada, e o TypeScript restringe o tipo de cada item a partir do seu type:
Os itens criados a partir da saída do provedor também guardam o payload original em
rawProviderItem, para o campo raro que os tipos portáveis não trazem. Construa a lógica do produto sobre os campos portáveis, porque rawProviderItem varia por provedor.
Tipos de evento nas outras linguagens
Go, C#, PHP, Ruby e Java entregam os mesmos tipos de evento. Oitem_stream() do Python produz itens do provedor e do runtime como dicts com uma chave type.
Onde os campos ficam varia por linguagem:
Nenhum deles é uma união tipada, então valide os campos que sua interface usa, mantenha o parsing específico de cada provedor atrás de um único adaptador e mantenha um fallback para tipos desconhecidos. No Go, no C# e no Java, os eventos do stream do modelo trazem o ID de execução
"stream"; use os eventos do ciclo de vida para obter o ID real da execução. A lista completa de eventos do ciclo de vida está em Hooks do ciclo de vida.
Reconstrua uma linha do tempo depois da execução
O histórico de eventos continua legível depois que a execução termina, então um consumidor pode renderizar enquanto outro persiste os eventos, sem uma segunda requisição ao modelo. Para uma linha do tempo durável, guarde o resultado da execução concluída:- TypeScript
- Python
- Go
- C#
- PHP
- Ruby
- Java
- Rust
O resultado concluído tem os mesmos itens ordenados do stream, em
items: