LLM大模型与AI应用的粘合剂。
1 langchain是什么以及发展过程
LangChain是一个开源框架,旨在简化使用大型语言模型构建端到端应用程序的过程,也是ReAct(reason+act)论文的落地实现。
2022年10月25日开源
54K+ star
种子轮一周1000万美金,A轮2500万美金
11个月里累计发布200多次,提交4000多次代码
2 langchain能做什么和能力一览
模型 A
构造提示词 -> LLMs -> 模型生产结果 -> 结果处理 -> 最终结果
模型 B
构造提示词 -> LLMs -> 模型生产结果 -> 结果处理 -> 最终结果
模型 N...
构造提示词 -> LLMs -> 模型生产结果 -> 结果处理 -> 最终结果
Langchain I/O系统
+------------+ +------------------------+ +------------+
| | 输入 | +--------------+ | 输入 | |
| 用户输入 | -------------> | | prompt | | -------------> | LLMs |
| | | +--------------+ | | |
| | | | | |
| | 输出 | +--------------+ | 输出 | |
| | <------------- | | Output | | <------------- | |
+------------+ | | Parsers | | +------------+
| +--------------+ |
+------------------------+
Langchain I/O系统
- 解决大模型各种问题的提示词工程方案之一
- 提供了与LLMs交互的各种组件,极大提升开发效率
- 可以以文件方式加载提示词、链等,方便共享提示词和做提示词版本管理
- 提供丰富的链式工具箱
LLMs & Prompt
提供了目前市面上几乎所有 LLM 的通用接口,同时还提供了 提示词 的管理和优化能力,同时也提供了非常多的相关适用工具,以方便开发人员利用 LangChain 与 LLMs 进行交互。
Chains
LangChain 把 提示词、大语言模型、结果解析封装成 Chain,并提供标准的接口,以便允许不同的Chain形成交互序列,为 AI 原生应用提供了端到端的 Chain
Retrieval-Augemented Generation
检索增强生成式,一种解决预训练语料数据无法及时更新而带来的回答内容陈旧的方式。LangChain提供支持 检索增强生成式的Chain。使用时,这些 Chain 会首先与外部数据源进行交互以获得对应数据,然后再利用获得的数据与 LLMs 进行交互。典型应用场暴如:基于特定数据源的问答机器人。
Agent
对于一个任务,代理主要涉及让 LLMs 来对任务进行拆分、执行该行动、并观察执行结果,代理 会重复执行这个过程,直到该任务完成为止。LangChain 为 代理 提供了标准接口,可供选择的代理,以及一些端到端的代理的示例
Memory
chain 或 agent 调用之间的状态持久化。LangChain 为 内存 提供了准接口三并提供了↖系烈COn的 内存 实现
Evaluation
LangChain 还提供了非常多的评估能力以允许我们可以更方便的对 LLMs 进行评估
3 langchain的优劣
3.1 优点
- 平台大语言模型调用能力,支持多平台多模型调用,为用户提供灵活选择
- 轻量级SDK(python、javas生一起将LLMs与传统编程语言集成持
- 多模态支持,提供多模态数据支持,如图像、音频等
3.2 缺点
- 学习曲线相对较高
- 文档相对不完善,官方文档不是很完善
- 缺乏大型工业化应用实践
4 langchain开发环境搭建
4.1 为啥用Python?
- 高级的接近人类语言的编程语言,易于学习
- 动态语言
- 直译式语言,可以跳过编译逐行执行代码广泛应用于web应用、软件、数据科学和机器学习
- AI方向的主流语言
- 活跃的python社区
- 数据巨大且丰富的库
4.2 环境要求
Python
= 3.8.1,推荐 3.10.12
https://www.python.org/downloads/
安装 jupyter
参阅:安装使用教程
安装 LangChain
命令安装
$ pip install langchain
$ conda install langchain -c conda-forge
也可以使用VS code/PyCharm的jupyter插件启动。
关注我,紧跟本系列专栏文章,咱们下篇再续!
作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。
各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。
负责:
- 中央/分销预订系统性能优化
- 活动&券等营销中台建设
- 交易平台及数据中台等架构和开发设计
- 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
- LLM应用开发
目前主攻降低软件复杂性设计、构建高可用系统方向。
参考: