LangChain是一个框架,用于开发由大型语言模型(LLM)驱动的应用程序。
LangChain 简化了 LLM 应用程序生命周期的每个阶段:
总结: LangChain是一个用于开发由LLM支持的应用程序的框架,通过提供标准化且丰富的模块抽象,构建LLM的输入输出规范,主要是利用其核心概念chains,可以灵活地链接整个应用开发流程。(即,其中的每个模块抽象,都是源于对大模型的深入理解和实践经验,由许多开发者提供出来的标准化流程和解决方案的抽象,再通过灵活的模块化组合,才得到了langchain)
想象一下,如果要组织一个AI应用,开发者一般需要?
由上边的内容,引出LangChain抽象的一些核心模块:
LangChain通过模块化的方式去高级抽象LLM在不同场景下的能力,其中LangChain抽象出的最重要的核心模块如下:‘
LangChain的特点如下:
在使用大模型的过程中,一些行业痛点:
pip install langchain
LangChain的memory模块是一个强大的工具,它为与大型语言模型(LLM)的交互提供了记忆能力。这个模块使得对话系统能够记住先前的交互,无论是短期还是长期,从而提供更加个性化和连贯的用户体验。
以下是memory模块的一些关键组件和它们的作用:
memory模块的集成与应用: Memory组件可以单独使用,也可以无缝地集成到LangChain的Chain中。在与LLM进行交互时,Chain会与Memory组件进行两次交互:一次是读取记忆以增强用户输入,另一次是写入记忆以更新对话历史。这种集成方式使得开发者能够更高效地构建大模型应用,提升对话系统的性能和用户体验。
总结来说,LangChain的memory模块通过提供记忆能力,使得对话系统能够更加个性化和连贯地与用户进行交互。通过不断地保存和检索上下文信息,memory模块能够增强对话的连贯性和精准度,为用户提供更好的服务体验。
ConversationBufferMemory: 是 LangChain 中用于管理对话记忆的一种机制,它允许聊天机器人或类似系统记录和保留先前的对话部分,以便在与用户交谈时能够回顾所讨论的内容。以下是 ConversationBufferMemory 的一些关键特性和功能:
from langchain_openai import OpenAI
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
os.environ["ZHIPUAI_API_KEY"] = ""
llm = ChatZhipuAI(
model="glm-4",
temperature=0.5,
)
conversation = ConversationChain(
llm=llm,
verbose=True,
memory=ConversationBufferMemory()
)
conversation.predict(input="你好呀!")
输出:
总结: 最最基础的Memory模块,保留所有记忆,同时呢,Token的使用量也是最多的。
ConversationBufferWindowMemory 是 LangChain 中的一个内存模块,它用于记录会话的交互列表,并且只保留最近的 K 个交互。这个机制对于维护一个滑动窗口的最近交互非常有用,有助于避免缓冲区过大,同时保持对话的连贯性。
以下是 ConversationBufferWindowMemory 的一些关键特性和功能:
from langchain.llms import OpenAI
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferWindowMemory
os.environ["ZHIPUAI_API_KEY"] = ""
llm = ChatZhipuAI(
model="glm-4",
temperature=0.5,
)
# 在ConversationChain中使用滑动窗口记忆,设置记忆为2。
conversation_with_summary = ConversationChain(
llm=llm,
# We set a low k=2, to only keep the last 2 interactions in memory
memory=ConversationBufferWindowMemory(k=2),
verbose=True
)
conversation_with_summary.predict(input="Hi, what's up?")
输出:
总结: 进阶版本Memory模块,鱼的记忆,只会记住最近的几轮对话,在某些场景下比较适用。
ConversationSummaryBufferMemory: 是 LangChain 中的一个内存模块,它结合了对话缓冲区和摘要功能。这个模块在内存中保留了最近的交互缓冲区,但与仅仅清除旧交互不同,它将这些交互编译成摘要,并同时使用这些交互和摘要。它使用 token 长度而不是交互次数来确定何时清除交互,这样可以更灵活地控制内存中对话内容的保留。
以下是 ConversationSummaryBufferMemory 的一些关键特性和功能:
from langchain.memory import ConversationSummaryBufferMemory, ConversationSummaryMemory
from langchain.llms import OpenAI
import os
from langchain_community.chat_models import ChatZhipuAI
from langchain.chains import ConversationChain
os.environ["ZHIPUAI_API_KEY"] = ""
llm = ChatZhipuAI(
model="glm-4",
temperature=0.5,
)
conversation_with_summary = ConversationChain(
llm=llm,
memory=ConversationSummaryMemory(llm=llm, max_token_limit=10),
verbose=True
)
conversation_with_summary.predict(input="Hi, what's up?")
输出:
输出记忆:
conversation_with_summary.memory.load_memory_variables({})
输出: 这里可以看到,history被总结成一个对话摘要。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。