一架梯子,一头程序猿,仰望星空!
LangChain教程(Python版本) > 内容正文

LangChain 简介


简介

LangChain是一个开源的Python AI应用开发框架,它提供了构建基于大模型的AI应用所需的模块和工具。通过LangChain,开发者可以轻松地与大型语言模型(LLM)集成,完成文本生成、问答、翻译、对话等任务。LangChain降低了AI应用开发的门槛,让任何人都可以基于LLM构建属于自己的创意应用。

LangChain特性:

  • LLM 和提示(Prompt):LangChain 对所有LLM大模型进行了API抽象,统一了大模型访问API,同时提供了Prompt提示模板管理机制。
  • 链(Chain):Langchain对一些常见的场景封装了一些现成的模块,例如:基于上下文信息的问答系统,自然语言生成SQL查询等等,因为实现这些任务的过程就像工作流一样,一步一步的执行,所以叫链(chain)。
  • LCEL:LangChain Expression Language (LCEL), langchain新版本的核心特性,用于解决工作流编排问题,通过LCEL表达式,我们可以灵活的自定义AI任务处理流程,也就是灵活自定义链(Chain)
  • 数据增强生成(RAG):因为大模型(LLM)不了解新的信息,无法回答新的问题,所以我们可以将新的信息导入到LLM,用于增强LLM生成内容的质量,这种模式叫做RAG模式(Retrieval Augmented Generation)。
  • Agents:是一种基于大模型(LLM)的应用设计模式,利用LLM的自然语言理解和推理能力(LLM作为大脑)),根据用户的需求自动调用外部系统、设备共同去完成任务,例如:用户输入“明天请假一天”, 大模型(LLM)自动调用请假系统,发起一个请假申请。
  • 模型记忆(memory):让大模型(llm)记住之前的对话内容,这种能力成为模型记忆(memory)。

LangChain框架组成

LangChain框架组成

LangChain框架由几个部分组成,包括:

  • LangChain库:Python和JavaScript库。包含接口和集成多种组件的运行时基础,以及现成的链和代理的实现。
  • LangChain模板:Langchain官方提供的一些AI任务模板。
  • LangServe:基于FastAPI可以将Langchain定义的链(Chain),发布成为REST API。
  • LangSmith:开发平台,是个云服务,支持Langchain debug、任务监控。

LangChain库(Libraries)

LangChain库本身由几个不同的包组成。

  • langchain-core:基础抽象和LangChain表达语言。
  • langchain-community:第三方集成,主要包括langchain集成的第三方组件。
  • langchain:主要包括链(chain)、代理(agent)和检索策略。

langchain任务处理流程

如上图,langChain提供一套提示词模板(prompt template)管理工具,负责处理提示词,然后传递给大模型处理,最后处理大模型返回的结果,

LangChain对大模型的封装主要包括LLM和Chat Model两种类型。

  • LLM - 问答模型,模型接收一个文本输入,然后返回一个文本结果。
  • Chat Model - 对话模型,接收一组对话消息,然后返回对话消息,类似聊天消息一样。

核心概念

1. LLMs

LangChain封装的基础模型,模型接收一个文本输入,然后返回一个文本结果。

2. Chat Models

聊天模型(或者成为对话模型),与 LLMs 不同,这些模型专为对话场景而设计。模型可以接收一组对话消息,然后返回对话消息,类似聊天消息一样。

3. 消息(Message)

指的是聊天模型(Chat Models)的消息内容,消息类型包括包括 HumanMessage、AIMessage、SystemMessage、FunctionMessage 和 ToolMessage等多种类型的消息。

4. 提示(prompts)

LangChain封装了一组专门用于提示词(prompts)管理的工具类,方便我们格式化提示词(prompts)内容。

5. 输出解析器(Output Parsers)

如上图介绍,Langchain接受大模型(llm)返回的文本内容之后,可以使用专门的输出解析器对文本内容进行格式化,例如解析json、或者将llm输出的内容转成python对象。

5. Retrievers

为方便我们将私有数据导入到大模型(LLM), 提高模型回答问题的质量,LangChain封装了检索框架(Retrievers),方便我们加载文档数据、切割文档数据、存储和检索文档数据。

6. 向量存储(Vector stores)

为支持私有数据的语义相似搜索,langchain支持多种向量数据库。

7. Agents

智能体(Agents),通常指的是以大模型(LLM)作为决策引擎,根据用户输入的任务,自动调用外部系统、硬件设备共同完成用户的任务,是一种以大模型(LLM)为核心的应用设计模式。

应用场景

  • 对话机器人:构建智能的对话助手、客服机器人、聊天机器人等。
  • 知识库问答:结合知识图谱,进行开放域问题的问答服务。
  • 智能写作:如文章写作、创意写作、文本摘要等。


关联主题