StreamCollect 辅助函数 - 收集所有事件 用于向后兼容,将流式接口转换为批量结果 使用示例: events, err := StreamCollect(agent.Stream(ctx, "Hello")) if err != nil { return err } for _, event := range events { fmt.Println(event) }
(reader *stream.Reader[*session.Event])
| 173 | // fmt.Println(event) |
| 174 | // } |
| 175 | func StreamCollect(reader *stream.Reader[*session.Event]) ([]*session.Event, error) { |
| 176 | var events []*session.Event |
| 177 | for { |
| 178 | event, err := reader.Recv() |
| 179 | if err != nil { |
| 180 | if errors.Is(err, io.EOF) { |
| 181 | break |
| 182 | } |
| 183 | return events, err |
| 184 | } |
| 185 | if event != nil { |
| 186 | events = append(events, event) |
| 187 | } |
| 188 | } |
| 189 | return events, nil |
| 190 | } |
| 191 | |
| 192 | // StreamFirst 辅助函数 - 获取第一个事件 |
| 193 | func StreamFirst(reader *stream.Reader[*session.Event]) (*session.Event, error) { |