LangChain: LLM应用开发框架

GitHub - hwchase17/langchain: ⚡ Building applications with LLMs through composability ⚡⚡ Building applications with LLMs through composability ⚡ - GitHub - hwchase17/langchain: ⚡ Building applications with LLMs through composability ⚡https://github.com/hwchase17/langchain

1. Langchain介绍

LangChain创建于2022年10月,是围绕LLMs(大语言模型)建立的一个框架,LLMs使用机器学习算法和海量数据来分析和理解自然语言。LangChain自身并不开发LLMs,它的核心理念是为各种LLMs实现通用的接口,把LLMs相关的组件“链接”在一起,简化LLMs应用的开发难度,方便开发者快速地开发复杂的LLMs应用。Langchain包含模块:

  • 模型(models) : LangChain 支持的各种模型类型和模型集成。
  • 提示(prompts) : 包括提示管理、提示优化和提示序列化。
  • 内存(memory) : 内存是在链/代理调用之间保持状态的概念。LangChain 提供了一个标准的内存接口、一组内存实现及使用内存的链/代理示例。
  • 索引(indexes) : 与您自己的文本数据结合使用时,语言模型往往更加强大——此模块涵盖了执行此操作的最佳实践。
  • 链(chains) : 链不仅仅是单个 LLM 调用,还包括一系列调用(无论是调用 LLM 还是不同的实用工具)。LangChain 提供了一种标准的链接口、许多与其他工具的集成。LangChain 提供了用于常见应用程序的端到端的链调用。例如,一个 Chain 可能包括一个 Prompt 模板、一个语言模型和一个输出解析器
  • 代理(agents) : 代理涉及 LLM 做出行动决策、执行该行动、查看一个观察结果,并重复该过程直到完成。LangChain 提供了一个标准的代理接口,一系列可供选择的代理,以及端到端代理的示例。

1.1 LangChain Agents 代理人

有些应用程序不仅需要预先确定的LLM/其他工具调用链,而且可能需要根据用户输入的不同而产生不同的链条。在这些类型的链条中,有一个“代理人”可以访问一套工具。根据用户输入,代理人可以决定是否调用其中任何一个工具

  • 代理:要使用的代理。这应该是一个引用支持代理类的字符串。因为本教程专注于最简单、最高级别的API,所以只涵盖使用标准支持的代理。如果您想实现自定义代理,请参阅自定义代理的文档。
  • 工具:执行特定职责的函数。这可以是诸如:Google搜索、数据库查找、Python REPL、其他链等。工具的接口目前是期望有一个字符串作为输入,一个字符串作为输出的函数。

1.2 LangChain Chains 链

链允许我们将多个组件组合在一起,创建一个单一的、一致的应用程序。例如,我们可以创建一个链,该链接接受用户输入,使用 PromptTemplate 对其进行格式化,然后将格式化后的响应传递给 LLM。我们可以通过将多个链组合在一起,或者通过将链与其他组件组合在一起,来构建更复杂的链。

  • 通用功能:涵盖了通用链(在各种应用程序中都有用的链)以及与这些链相关的通用功能,如链的异步API创建自定义链从LangChainHub加载
  • 与索引相关的链:如分析文档,在文档上聊天并查看历史记录,图形问答
  • 其他所有类型的链:如API 链

1.3 LangChain models

LangChain model 是一种抽象,表示框架中使用的不同类型的模型。LangChain 中的模型主要分为三类:

  1. LLM(大型语言模型):这些模型将文本字符串作为输入并返回文本字符串作为输出。它们是许多语言模型应用程序的支柱。
  2. 聊天模型( Chat Model):聊天模型由语言模型支持,但具有更结构化的 API。他们将聊天消息列表作为输入并返回聊天消息。这使得管理对话历史记录和维护上下文变得容易。
  3. 文本嵌入模型(Text Embedding Models):这些模型将文本作为输入并返回表示文本嵌入的浮点列表。这些嵌入可用于文档检索、聚类和相似性比较等任务。

2. LangChain 的主要特点

LangChain 旨在为六个主要领域的开发人员提供支持:

  1. LLM 和提示:LangChain 使管理提示、优化它们以及为所有 LLM 创建通用界面变得容易。此外,它还包括一些用于处理 LLM 的便捷实用程序。
  2. 链(Chain):这些是对 LLM 或其他实用程序的调用序列。LangChain 为链提供标准接口,与各种工具集成,为流行应用提供端到端的链。
  3. 数据增强生成:LangChain 使链能够与外部数据源交互以收集生成步骤的数据。例如,它可以帮助总结长文本或使用特定数据源回答问题。
  4. Agents:Agents 让 LLM 做出有关行动的决定,采取这些行动,检查结果,并继续前进直到工作完成。LangChain 提供了代理的标准接口,多种代理可供选择,以及端到端的代理示例。
  5. 内存:LangChain 有一个标准的内存接口,有助于维护链或代理调用之间的状态。它还提供了一系列内存实现和使用内存的链或代理的示例。
  6. 评估:很难用传统指标评估生成模型。这就是为什么 LangChain 提供提示和链来帮助开发者自己使用 LLM 评估他们的模型。

3. 使用示例

LangChain 支持大量用例,例如:

  • 针对特定文档的问答:根据给定的文档回答问题,使用这些文档中的信息来创建答案。
  • 聊天机器人:构建可以利用 LLM 的功能生成文本的聊天机器人。
  • Agents:开发可以决定行动、采取这些行动、观察结果并继续执行直到完成的代理。
  • 智能体仿真(Agent Simulations)

推荐网站

LangChain中文网: 500页超详细中文文档教程,助力LLM/chatGPT应用开发 – LangChain中文网

LangChain中文社区

Welcome to LangChain — 🦜🔗 LangChain 0.0.194

项目案例

https://github.com/yanqiangmiffy/Chinese-LangChain

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值