Open chickenlj opened 2 weeks ago
Provided by 张亦驰
一、记忆类型:ConversationBufferWindowMemory:基于一个固定长度的滑动窗口的“记忆”功能
二、记忆存储:
三、模型基础抽象(提取了常用的公共部分)
1. apikay:秘钥
2. windowSize:窗口大小
3. temperature:温度
4. modelEnum:模型枚举(名称、输入上下文窗口大小)
5. prompt:提示词
6. includeSystemPrompt:是否包含提示词(true,将提示词放到message[0]<千问>,根据api实现)
四、根据ModelConversationFactory创建适配模型的会话
1. QwenClient
2. OpenAIClient
…
五、会话实体属性:
1. role: user(用户输入)、assistant: (ai回复)
2. content:用户输入信息&AI回复信息
六、根据配置的持久化方式和记忆方式(滑动窗口、小结、、、)持久化会话,当前滑动(固定)窗口大小方式
七、持久化的存储类型:mysql、redis、ES
八、根据不同的持久化方式初始化存储结构、存储
一、记忆类型增加:
1. ConversationSummaryBufferMemory:在token限制之前以对话形式进行存储,超过之后进行小结存储
2. ConversationSummaryMemory:将每次会话都进行以小结的形式存储
二、会话的message属性增加:
1. inputCountTokens:用户输入的token数量
2. outputCountTokens:AI回复的token数量
三、ModelConversationFactory增加:
其他模型client适配
四、优化token计算方式: 如:用户首次输入,请求api计算或使用依赖分词器计算
五、同一种model不同的记忆类型存储