什么是LangChain?

LangChain是一个强大的开发大模型应用的框架,它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。

LangChain的常用模块组件:

  • 模型 ( Models )

  • 模式 ( Schema )

  • 提示词 ( Prompt )

  • 代理( Agents )

  • 链( Chains )

  • 索引 ( Indexes )

  • 内存(Memory)

什么是 model?

LangChain model 是一个基于语言模型的框架,用于构建聊天机器人、生成式问答(GQA)、摘要等功能。LangChain 的核心思想是可以将不同的组件“链”在一起,以创建更高级的语言模型应用。

LLMs: 模型的简单使用,不支持流,不支持参数配置

Chat: 可以配置模型,支持流,支持参数配置

什么是Chains?

在简单应用中,单独使用LLM是可以的,但更复杂的应用需要将LLM进行链接。例如,我们可以创建一个链,该链接收用户输入,使用PromptTemplate对其进行格式化,然后将格式化后的响应传递给LLM。链允许我们将多个组件组合在一起创建一个单一的、连贯的应用。

四个常用的链:

  • LLMChain:一个链,将一个LLM和一个PromptTemplate组合在一起。

  • SimpleSequentialChain:一个简单的链,将一个链的输出作为下一个链的输入。

  • SequentialChain:一个更复杂的链,允许我们定义多个链,并将它们链接在一起。

  • ConversationChain:一个链,将一个LLM和一个ConversationPromptTemplate组合在一起。

LangChain中常用的Promtp有哪些?

1.PromptTemplate

2.ChatPromptTemplate

3.ChatMessagePromptTemplate

4.StringPromptTemplate

5、使用PipelinePromptTemplate实现多步提示词

LangChain中四种文档处理链是什么
  • StuffDocumentsChain

    这种链最简单直接,是将所有获取到的文档作为 context 放入到 Prompt 中,传递到 LLM 获取答案。这种方式可以完整的保留上下文,调用 LLM 的次数也比较少,建议能使用 stuff 的就使用这种方式。其适合文档拆分的比较小,一次获取文档比较少的场景,不然容易超过 token 的限制。

  • RefineDocumentsChain

    通过迭代更新的方式获取答案。先处理第一个文档,作为 context 传递给 llm,获取中间结果 intermediate answer。然后将第一个文档的中间结果以及第二个文档发给 llm 进行处理,后续的文档类似处理。Refine 这种方式能部分保留上下文,以及 token 的使用能控制在一定范围。

  • MapReduceDocumentsChain

    先通过 LLM 对每个 document 进行处理,然后将所有文档的答案在通过 LLM 进行合并处理,得到最终的结果。

    MapReduce 的方式将每个 document 单独处理,可以并发进行调用。但是每个文档之间缺少上下文。

  • MapRerankDocumentsChain

MapRerankDocumentsChain 和 MapReduceDocumentsChain 类似,先通过 LLM 对每个 document 进行处理,每个答案都会返回一个 score,最后选择 score 最高的答案。MapRerank 和 MapReduce 类似,会大批量的调用 LLM,每个 document 之间是独立处理。

LangChain内置的几个示例选择器

1 根据长度要求智能选择示例(长度选择)

2 根据输入相似度选择示例(最大边际相关性)

3 根据输入相似度选择示例(最大余弦相似度)

LangChain怎么自定义选择器?

示例选择器需要继承 BaseExampleSelector 类,并且需要实现两个方法:

add_example 方法,该方法接受一个示例并将其添加到 ExampleSelector 中

select_examples 方法,该方法接受输入变量(用于用户输入)并返回要在 few shot 提示中使用的示例列表。

LangChain内置的输出解释器有哪些?

列表解析器:CommaSeparatedListOutputParser,NumberedListOutputParser

日期时间解析器:DatetimeOutputParser

Pydantic 解析器

JSON 解析器:

XML解析器:

Markdown 解析器:

结构化输出解析器 structured

修复解析器 重试解析器

什么是Agents

Agents 是一个具有智能功能的智能体,它使用 LLM 和工具来执行任务。

Agents 核心思想是使用LLM来选择要采取的一系列动作。在链式结构中,一系列动作是硬编码的(在代码中)。 在 Agents 中,使用语言模型作为推理引擎来确定要采取的动作及其顺序。

Agents 包括几个关键组件:

  • Agent: 用于生成指令和执行动作的代理。

  • Tool: 用于执行动作的函数。

  • Memory: 用于存储历史对话和生成的指令。

  • LLM: 用于生成指令和执行动作的 LLM。

    Toolkits都包括哪些

    CSV 代理 文档比较 Pandas Dataframe Agent SQL数据库代理 Vectorstore 代理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值