什么是 🦜️🔗 LangChain?
LangChain is a framework for developing applications powered by language models如其官网所说,LangChain 是一个开发语言模型应用的框架。其设计理念在于其认为一个应用程序不应该只和模型的接口打交道,还应该:
- Data-Aware: 将语言模型和其他数据源连接起来。
- Agentic:允许语言模型和环境交互。
两个重要概念:组件和链
所以 LangChain 中由两类重要的概念,一个是 Components 组件,一个是 Use-Case Specific Chains 用例特定链:
- 组件:可以与语言模型进行交互的模块抽象及其实现,可以组合起来创建应用程序。
- 链:组合在一起完成特定任务的一系列组件或其他链,例如,一个 Chain 可能包括一个 Prompt 模板、一个语言模型和一个输出解析器,它们一起工作以处理用户输入、生成响应并处理输出。
组件
Loader 加载器
是从指定源进行加载数据,比如加载文件,加载表格,加载Youtube等,官方提供很多加载器,甚至有 Biliblili:Document 文档
使用 loader 加载器读取到数据源后需要转换成 Document 对象后才能使用。Text Spltters 文本分割
顾名思义用于分割文本,为了防止 token 超长。Vectorstores 向量数据库
数据相关性搜索其实是向量运算,需要将我们的加载进来的数据 Document 向量化才能进行向量运算搜索,转换成向量只需要我们把数据存储到对应的向量数据库中即可。Chain 链
可以把 Chain 理解为任务,一个 Chain 就是一个任务,可以像链条一样一个一个的执行多个链。Agent 代理
可以动态的帮我们选择和调用chain或者已有的工具:如何使用
参考
LangChain 完整指南:使用大语言模型构建强大的应用程序
https://github.com/liaokongVFX/LangChain-Chinese-Getting-Started-Guide