LangChain is a framework for developing applications powered by language models(LangChain是一个由语言模型驱动的应用程序开发框架,旨在帮助开发人员使用语言模型构建端到端的应用程序)

1、一些概念

Components and Chains

  • Component 是模块化的构建块,可以组合起来创建强大的应用程序。
  • Chain 是组合在一起以完成特定任务的一系列 Components。一个 Chain 可能包括一个 Prompt 模板、一个语言模型和一个输出解析器,它们一起工作以处理用户输入、生成响应并处理输出。

Prompt Templates and Values

  • Prompt Templates 负责创建 PromptValue,这是最终传递给语言模型的内容。有助于将用户输入和其他动态信息转换为适合语言模型的格式。
  • PromptValues 是具有方法的类,这些方法可以转换为每个模型类型期望的确切输入类型(如文本或聊天消息)。

Example Selectors

  • 可以在 Prompt 中动态包含示例,接受用户输入并返回一个示例列表以在提示中使用,使其更强大和特定于上下文。

Output Parsers

  • 负责将语言模型响应构建为更有用的格式,使得在应用程序中处理输出数据变得更加容易。实现了两种主要方法:
    • 一种用于提供格式化指令。
    • 一种用于将语言模型的响应解析为结构化格式。

Indexes and Retrievers

  • Index 是一种组织文档的方式,使语言模型更容易与它们交互。
  • Retrievers 是用于获取相关文档并将它们与语言模型组合的接口。

LangChain 提供了用于处理不同类型的索引和检索器的工具和功能,例如矢量数据库和文本拆分器。

Chat Message History

  • 主要通过聊天界面与语言模型进行交互。

ChatMessageHistory 类负责记住所有以前的聊天交互数据,然后可以将这些交互数据传递回模型、汇总或以其他方式组合。这有助于维护上下文并提高模型对对话的理解。

Agents and Toolkits

  • Agent 是在 LangChain 中推动决策制定的实体。他们可以访问一套工具,并可以根据用户输入决定调用哪个工具。
  • Tookits 是一组工具,当它们一起使用时,可以完成特定的任务。代理执行器负责使用适当的工具运行代理。

LangChain model

LangChain 中的模型主要分为三类

  • LLM(大型语言模型):可以将文本字符串作为输入并返回文本字符串作为输出。
  • 聊天模型( Chat Model) :将聊天消息列表作为输入并返回聊天消息。用于管理对话历史记录和维护上下文。
  • 文本嵌入模型(Text Embedding Models) :将文本作为输入并返回表示文本嵌入的浮点列表。用于文档检索、聚类和相似性比较等任务。

2、安装

pip install langchain or pip install langchain[all] or pip install langchain[llm]

zsh 安装需要使用 pip install 'langchain[all]'