11LangChain实战课 - 记忆机制在对话中的应用

29 阅读4分钟

我正在参加「豆包MarsCode AI练中学体验活动」详情请看:掘金小册上线 AI练中学功能 | 你的 AI 编程助教喊你免费领小册啦!

LangChain实战课 - 记忆机制在对话中的应用

在本次LangChain实战课程中,我们探讨了如何在智能客服ChatBot中实现记忆机制,以便模型能够在对话中记住之前的交互。以下是本次课程的核心内容和步骤:

1. 记忆机制的重要性

  • 在默认情况下,LLM和代理都是无状态的,每次模型调用都是独立的。
  • ChatGPT能够记住之前的对话,是因为它使用了记忆机制,将对话上下文作为提示的一部分传递给模型。

2. 使用ConversationChain

  • ConversationChain提供了包含AI前缀和人类前缀的对话摘要格式,与记忆机制紧密结合。
  • 通过{history}和{input}参数,将历史对话信息存储在提示模板中,并作为新的提示内容在新一轮对话中传递给模型。

3. 使用ConversationBufferMemory

  • ConversationBufferMemory实现了最简单的记忆机制,通过缓冲记忆来记录对话历史。
  • 每次对话后,记忆会作为一部分传入提示,使得模型能够在后续对话中引用之前的内容。

4. 使用ConversationBufferWindowMemory

  • ConversationBufferWindowMemory是缓冲窗口记忆,只保存最新最近的几次人类和AI的互动。
  • 通过设置窗口值k,限制记忆的对话轮次,从而控制Token的使用。

5. 使用ConversationSummaryMemory

  • ConversationSummaryMemory通过汇总对话历史来避免过度使用Token。
  • 每次新的互动发生时,对其进行汇总,然后将其添加到之前所有互动的“运行汇总”中。

6. 使用ConversationSummaryBufferMemory

  • ConversationSummaryBufferMemory结合了ConversationSummaryMemory和ConversationBufferWindowMemory的特点。
  • 在对话长度超出预设的Token限制时,对早期的对话进行总结,同时尽量保留最近互动中的原始内容。

7. 记忆机制的比较

  • 通过表格比较了四种记忆机制的优缺点,包括Token消耗、记忆长度和适用场景。

8. 记忆机制的选择

  • 根据不同的对话场景和需求,选择合适的记忆机制,以平衡记忆长度、Token消耗和对话成本。

思考题回答

  1. 告知客户记忆能力有限的情况下选择哪种记忆机制?

    在这种情况下,如果我们预先告知客户ChatBot只能记住最近的10次对话,那么最合适的记忆机制是ConversationBufferWindowMemory。这种记忆机制允许我们设置一个窗口值k,只保留最近的k次对话。这样,ChatBot可以有效地管理内存,并且当对话历史超过限制时,旧的对话会被新的对话替换,从而确保ChatBot总是能够访问到最近的对话内容。这种方法简单直接,也符合客户的预期,因为它明确地限制了记忆的范围。

  2. 改变ConversationBufferWindowMemory中的k值并增加对话轮次,看看记忆效果。

    如果我们增加k值,比如从k=1增加到k=5,那么ChatBot将能够记住更多的最近对话。这意味着即使在更多的对话轮次之后,ChatBot也能够回忆起更多的历史信息。然而,这也意味着每次对话时需要处理和传递给模型的Token数量会增加,可能会导致更长的响应时间和更高的成本。在实际应用中,我们需要在记忆的深度和对话成本之间找到平衡点。

  3. 改变ConversationSummaryBufferMemory中的max_token_limit值,看看记忆效果。

    如果我们调整ConversationSummaryBufferMemory中的max_token_limit值,比如从300调整到500,那么在对话内容没有超过500个Token之前,ChatBot会尽量保留对话的原始内容。当对话内容超过这个限制后,模型将开始对早期的对话进行总结,以节省Token。增加max_token_limit值意味着我们可以在对话中保留更多的原始信息,直到需要进行总结。这可能会提高对话的连贯性和准确性,但同样会增加Token的使用,直到达到新的限制值。

通过这些调整和实验,我们可以更好地理解不同记忆机制在实际应用中的效果,以及它们如何影响ChatBot的性能和成本。这些实验也帮助我们根据具体的业务需求和限制,选择和调整最合适的记忆机制。

通过本次课程,我们学习了如何在LangChain中实现和选择不同类型记忆机制,以及它们如何影响对话的持续性和效率。记忆机制的引入,使得智能客服ChatBot能够更加自然地进行对话,提高了用户体验和对话的连贯性。