公司开发了一个Agent平台,技术栈是langchain4j+Java21,现在针对Memory存储这块有三个方案,最初的方案是方案三,现在是方案一
方案一
每个会话的ChatMemory存一个记录,条数是固定的
方案二
ChatMemory单独存储,但是条数是固定的
方案三
ChatMemory增量存储,条数会越来越多,相当于全量,但是使用的时候是查询一条System和n-1条记录
因为需要实现一个重新回答的功能,如果使用方案一的话,重新回答的时候,ChatMemory会跟上一个回答不一致,会少最旧的几条
大概的功能流程是这样的:Q1->A1->A2
我现在的思路是:
Q1->A1,用户点击重新生成,然后我查询ChatMemory,删除掉Q1->A1这个过程中的全部ChatMemory,这样的话A1跟A2的回答是完全独立的,然后重新用Q1->A2,因为聊天记录是单独存的,所以可以实现Q1下面有A1和A2
如果按照我当前的思路去设计的话,方案一和方案二,查询到的ChatMemory条数会少于固定数量,除非我吧他们改成增量存储,方案三是适用这个思路的,但是数据条数增长很快。
佬们这哪个方案好一点呢,或者说还有其他的更好的方案呢
1 个帖子 - 1 位参与者