小智头像图片
AI教程 2025年01月15日
0 收藏 0 点赞 515 浏览 3002 个字
摘要 :

面向开发者的LLM入门课程-对话缓存储存: 对话缓存储存 1.初始化对话模型 让我们先来初始化对话模型。 from langchain.chains import ConversationChain from langchain……

哈喽!伙伴们,我是小智,你们的AI向导。欢迎来到每日的AI学习时间。今天,我们将一起深入AI的奇妙世界,探索“面向开发者的LLM入门课程-对话缓存储存”,并学会本篇文章中所讲的全部知识点。还是那句话“不必远征未知,只需唤醒你的潜能!”跟着小智的步伐,我们终将学有所成,学以致用,并发现自身的更多可能性。话不多说,现在就让我们开始这场激发潜能的AI学习之旅吧。

面向开发者的LLM入门课程-对话缓存储存

面向开发者的LLM入门课程-对话缓存储存:

对话缓存储存

1.初始化对话模型

让我们先来初始化对话模型。

from langchain.chains import ConversationChain
from langchain.chat_models import ChatOpenAI
from langchain.memory import ConversationBufferMemory
# 这里我们将参数temperature设置为0.0,从而减少生成答案的随机性。
# 如果你想要每次得到不一样的有新意的答案,可以尝试增大该参数。
llm = ChatOpenAI(temperature=0.0)
memory = ConversationBufferMemory()
# 新建一个 ConversationChain Class 实例
# verbose参数设置为True时,程序会输出更详细的信息,以提供更多的调试或运行时信息。
# 相反,当将verbose参数设置为False时,程序会以更简洁的方式运行,只输出关键的信息。
conversation = ConversationChain(llm=llm, memory = memory, verbose=True )

2.第一轮对话

当我们运行预测(predict)时,生成了一些提示,如下所见,他说“以下是人类和 AI 之间友好的对话,AI 健谈“等等,这实际上是 LangChain 生成的提示,以使系统进行希望和友好的对话,并且必须保存对话,并提示了当前已完成的模型链。

conversation.predict(input=”你好, 我叫皮皮鲁”)

> Entering new chain…
Prompt after formatting:
The following is a friendly conversation between a human and an AI. The AI is
talkative and provides lots of specific details from its context. If the AI does
not know the answer to a question, it truthfully says it does not know.
Current conversation:
Human: 你好, 我叫皮皮鲁
AI:
> Finished chain.

‘你好,皮皮鲁!很高兴认识你。我是一个AI助手,可以回答你的问题和提供帮助。有什么我可以帮你的吗?’

3.第二轮对话

当我们进行第二轮对话时,它会保留上面的提示

conversation.predict(input=”1+1等于多少?”)

> Entering new ConversationChain chain…
Prompt after formatting:
The following is a friendly conversation between a human and an AI. The AI is
talkative and provides lots of specific details from its context. If the AI does
not know the answer to a question, it truthfully says it does not know.
Current conversation:
Human: 你好, 我叫皮皮鲁
AI: 你好,皮皮鲁!很高兴认识你。我是一个AI助手,可以回答你的问题和提供帮助。有什么我可以帮你的
吗?
Human: 1+1等于多少?
AI:
> Finished chain.

‘1+1等于2。’

4.第三轮对话

为了验证他是否记忆了前面的对话内容,我们让他回答前面已经说过的内容(我的名字),可以看到他确实输出了正确的名字,因此这个对话链随着往下进行会越来越长。

conversation.predict(input=”我叫什么名字?”)

> Entering new ConversationChain chain…
Prompt after formatting:
The following is a friendly conversation between a human and an AI. The AI is
talkative and provides lots of specific details from its context. If the AI does
not know the answer to a question, it truthfully says it does not know.
Current conversation:
Human: 你好, 我叫皮皮鲁
AI: 你好,皮皮鲁!很高兴认识你。我是一个AI助手,可以回答你的问题和提供帮助。有什么我可以帮你的
吗?
Human: 1+1等于多少?
AI: 1+1等于2。
Human: 我叫什么名字?
AI:
> Finished chain.

‘你叫皮皮鲁。’

5.查看储存缓存

储存缓存(buffer),即储存了当前为止所有的对话信息

print(memory.buffer)

Human: 你好, 我叫皮皮鲁
AI: 你好,皮皮鲁!很高兴认识你。我是一个AI助手,可以回答你的问题和提供帮助。有什么我可以帮你的
吗?
Human: 1+1等于多少?
AI: 1+1等于2。
Human: 我叫什么名字?
AI: 你叫皮皮鲁。

也可以通过 load_memory_variables({}) 打印缓存中的历史消息。这里的 {} 是一个空字典,有一些更高级的功能,使用户可以使用更复杂的输入,具体可以通过 LangChain 的官方文档查询更高级的用法。

print(memory.load_memory_variables({}))

{‘history’: ‘Human: 你好, 我叫皮皮鲁nAI: 你好,皮皮鲁!很高兴认识你。我是一个AI助手,可以回答你的问题和提供帮助。有什么我可以帮你的吗?nHuman: 1+1等于多少?nAI: 1+1等于2。nHuman: 我叫什么名字?nAI: 你叫皮皮鲁。’}

6.直接添加内容到储存缓存

我们可以使用 save_context 来直接添加内容到 buffer 中。

memory = ConversationBufferMemory()
memory.save_context({“input”: “你好,我叫皮皮鲁”}, {“output”: “你好啊,我叫鲁西西”})
memory.load_memory_variables({})

{‘history’: ‘Human: 你好,我叫皮皮鲁nAI: 你好啊,我叫鲁西西’}

继续添加新的内容

memory.save_context({“input”: “很高兴和你成为朋友!”}, {“output”: “是的,让我们一起去冒险吧!”})
memory.load_memory_variables({})

{‘history’: ‘Human: 你好,我叫皮皮鲁nAI: 你好啊,我叫鲁西西nHuman: 很高兴和你成为朋友!nAI: 是的,让我们一起去冒险吧!’}

可以看到对话历史都保存下来了!

当我们在使用大型语言模型进行聊天对话时,大型语言模型本身实际上是无状态的。语言模型本身并不记得到目前为止的历史对话。每次调用API结点都是独立的。储存(Memory)可以储存到目前为止的所有术语或对话,并将其输入或附加上下文到LLM中用于生成输出。如此看起来就好像它在进行下一轮对话的时候,记得之前说过什么。

面向开发者的LLM入门课程-对话缓存窗口储存
面向开发者的LLM入门课程-对话缓存窗口储存:对话缓存窗口储存 随着对话变得越来越长,所需的内存量也变得非常长。将大量的tokens发...

嘿,伙伴们,今天我们的AI探索之旅已经圆满结束。关于“面向开发者的LLM入门课程-对话缓存储存”的内容已经分享给大家了。感谢你们的陪伴,希望这次旅程让你对AI能够更了解、更喜欢。谨记,精准提问是解锁AI潜能的钥匙哦!如果有小伙伴想要了解学习更多的AI知识,请关注我们的官网“AI智研社”,保证让你收获满满呦!

微信打赏二维码 微信扫一扫

支付宝打赏二维码 支付宝扫一扫

版权: 转载请注明出处:https://www.ai-blog.cn/2660.html

相关推荐
04-16

告别机械回答!手把手教你微调DeepSeek-R1模型: 让大模型像我们一样回答问题,这几乎是所有大模型…

小智头像图片
69
04-16

通义千问Qwen2.5-VL详解之能够操作电脑和手机的视觉Agent​: 能够操作电脑和手机的视觉Agent​ 通过…

小智头像图片
151
04-16

通义千问Qwen2.5-VL详解之增强的视频理解​: 增强的视频理解​ 可以支持最长1小时视频理解​ Qwen2.5…

小智头像图片
515
04-16

通义千问Qwen2.5-VL详解之Qwen特色文档解析​: Qwen特色文档解析​ 在 Qwen2.5-VL 中,我们在设计了…

小智头像图片
515
04-16

通义千问Qwen2.5-VL详解之全面的文字识别和理解​: 全面的文字识别和理解​ Qwen2.5-VL 将 OCR 识别…

小智头像图片
515
04-16

通义千问Qwen2.5-VL详解之精准的视觉定位​: 精准的视觉定位​ Qwen2.5-VL 采用矩形框和点的多样化…

小智头像图片
515
04-16

通义千问Qwen2.5-VL详解之万物识别​: 万物识别​ Qwen2.5-VL 不仅擅长识别常见物体,如花、鸟、鱼…

小智头像图片
515
04-16

通义千问Qwen2.5-VL详解: Qwen2.5-VL​ ​ Qwen2.5-VL 模型-AI视觉智能体能力大幅增强​ 版本:3B、7…

小智头像图片
515
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力原创内容

快速提升站内名气成为大牛

扫描二维码

手机访问本站

二维码
vip弹窗图片