langchain介绍
1、为什么需要langchain?
原始调用API诸多问题:
1、没有记忆,记不住上一次提问
2、上下文窗口有限,不能一次喂给它太大的信息量,比如处理大文档就不行
3、不擅长做计算(根本不做计算,只是猜测下一个最可能出现的token,用它来回答)
如何用代码来解决?
1、用python列表来储存之前的消息,在下次提问时把历史对话一块发给AI——有记忆
2、将长文档的内容先转换成向量,存储到向量数据库;然后在用户提问后,利用相似性搜索,把和问题相关的段落提取出来,一块发给AI——只接收和问题相关的段落,而不是整个文档
3、在遇到数学相关的问题时, 不让AI直接回答结果,而是生成得到计算结果所需的代码,然后执行代码返回结果——让代码来算
总之就是,可以用代码结合一些额外的提示词来解决问题。
2、langchain是什么以及它的优势
Langchain框架是一个支持AI大模型应用开发的框架,封装了以上的代码、提示词和步骤。
它主张:强大的AI应用不仅是调用模型API,还能感知上下文、连接外部数据、借助外部工具与环境进行互动来生成更好的回答。
(1)Langchain提供了一系列组件和链来简化开发过程。
比如如果希望AI有记忆,就可以创建一个ConversationBufferMemory的实例,连同模型的实例一起作为对话链的参数。之后在每次进行对话时,新消息都会自动被添加,全部传给模型。
就不需要手动维护储存历史消息的列表了。
langchain提供的组件有:
Model模型:AI应用的核心
Memory记忆:对话历史、相关的上下文信息
Chain链:把不同组件串连起来的结构,让我们创建出复杂的流程。
Retriever检索器:从外部信息源检索信息,增加模型的知识面
agent智能体:基于大模型的,能执行一系列动作的智能体(利用ai模型的能力进行推理,根据任务动态评估和确定行动路径)
(2)langchain为模型提供了统一的接口或抽象层。
切换模型时,不再需要根据不同模型的API来对代码重新调整,因为langchain把聊天模型的接口进行了统一,相当于发明了“适配器”。
开发更灵活,维护升级更方便。
安装方法:pip install langchain==0.1.4