转换 Beams 数据结构
作者: enricoros创建于 2025年12月29日更新于 2026年9月15日
目前,"光束"是通过一个由 CHandler 组成的数据结构实现的,该结构由一个全局对象提供支持,该对象以会话 ID 为索引,存储"状态存储",每个存储都包含一个光束的数据(所有光线和合并等)。 相反地,我想要有一个不同的结构,其中每个光束都具有唯一 ID,并且如果在内部具有指向会话 ID 的某种只读字段,则可以假定它们属于一个会话。这是一种弱的配对,在所有将光束显示而不是会话的情况下都可以很好地工作。实际上,光束甚至会接收一个与历史和指示如何继续会话的分离副本,但这只是一个附加内容。 然后,关键是,反应性的光束显示和操作应具有 useMemo,该 useMemo 会获取(即将创建)全局光束实体存储(类似于全局聊天或人格存储)和光束 ID(或其他搜索参数,例如会话 ID),并返回一个稳定的接口,类似于当前的光束 API 和应用程序的其余部分都可以使用,理想情况下甚至无需更改光束本身的代码。 现在还需要处理一个状态切片模式,因为 API 类似于切片的联合,但"真正的"API 必须是一种基于光束唯一 ID 的 CRUD 类型,而当前的切片类似于返回的接口。 您是否能够超级思考并探索实现此功能的多种方式,然后选择最合理的一种?
内容来源: enricoros/big-AGI