We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
由于模型是无状态的,因此要实现聊天记忆效果,需要在与模型交互时要把整个对话上下文完整的发送给模型。
实现方案上涉及以下几点:
Spring AI 中关于记忆部分的核心定义为 ChatMemory。
The text was updated successfully, but these errors were encountered:
Provided by 张亦驰
一、记忆类型:ConversationBufferWindowMemory:基于一个固定长度的滑动窗口的“记忆”功能
二、记忆存储: 1. add(String conversationId, Message msg) 2. add(String conversationId, List msgList) 3. getMessage(String conversationId) 4. clear(String conversationId)
三、模型基础抽象(提取了常用的公共部分)
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不同的记忆类型存储
Sorry, something went wrong.
太棒了~!~!稍后会合并到大版本中吗?
No branches or pull requests
由于模型是无状态的,因此要实现聊天记忆效果,需要在与模型交互时要把整个对话上下文完整的发送给模型。
基本方案
实现方案上涉及以下几点:
Spring AI分析
Spring AI 中关于记忆部分的核心定义为 ChatMemory。
The text was updated successfully, but these errors were encountered: