前言
明天介绍一下 LangChain 框架,LangChain 是一个帮忙在应用程序中应用大型语言模型(LLM)的编程框架。它能够将大型语言模型与其余计算或常识起源相结合,从而实现性能更加弱小的利用。
最后 LangChain 是一个开源我的项目,在 GitHub 上取得大量关注之后迅速转变为一家初创公司。随着大模型的热度一直攀升,LangChain 也取得了越来越多的开发人员亲睐。
什么是 LangChain
LangChain 是一个弱小的框架,旨在帮忙开发人员应用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创立由大型语言模型 (LLM) 和聊天模型提供反对的应用程序的过程。
简略来说,能够了解 LangChain 相当于开源版的 GPT 插件,它提供了丰盛的大语言模型工具,反对在开源模型的根底上疾速加强模型的能力。LangChain 能够轻松治理与语言模型的交互,将多个组件链接在一起,并集成额定的资源,例如 API 和数据库。
LangChain 外围概念及原理
1. Components and Chains
在 LangChain 中,Component
是模块化的构建块,能够组合起来创立弱小的应用程序。Chain 是组合在一起以实现特定工作的一系列 Components(或其余 Chain)。例如,一个 Chain 可能包含一个 Prompt 模板、一个语言模型和一个输入解析器,它们一起工作以解决用户输出、生成响应并解决输入。
2. Prompt Templates and Values
语言模型提醒词模板 PromptTemplates
,提醒模板能够让咱们反复的生成提醒,复用咱们的提醒。它蕴含一个文本字符串(“模板”),从用户那里获取一组参数并生成提醒。
PromptValues 是具备办法的类,这些办法能够转换为每个模型类型冀望的确切输出类型(如文本或聊天音讯)。
3. Memory
默认状况下 Agent 和 Chain 都是无状态的,所以用完之后不晓得上次的对话内容是什么。ChatMessageHistory
类负责记住所有以前的聊天交互数据,而后能够将这些交互数据传递回模型、汇总或以其余形式组合。这有助于保护上下文并进步模型对对话的了解。
4. Indexes and Retrievers
Index 是一种组织文档的形式,使语言模型更容易与它们交互。检索器是用于获取相干文档并将它们与语言模型组合的接口。LangChain 提供了用于解决不同类型的索引和检索器的工具和性能,例如矢量数据库和文本拆分器。
5. Agents and Toolkits
Agent 是在 LangChain 中推动决策制定的实体。他们能够拜访一套工具,并能够依据用户输出决定调用哪个工具。Tookits 是一组工具,当它们一起应用时,能够实现特定的工作。代理执行器负责应用适当的工具运行代理。
6. Output Parsers
输入解析器,负责将语言模型响应构建为更有用的格局,能够让 LLM 输入更加结构化的信息。它们实现了两种次要办法:一种用于提供格式化指令,另一种用于将语言模型的响应解析为结构化格局。这使得在您的应用程序中解决输入数据变得更加容易。
7. Example Selectors
示例选择器,他们承受用户输出并返回一个示例列表以在提醒中应用,如果有多个案例的时候,应用 ExampleSelectors 抉择一个案例让提醒词应用:
- 自定义的案例选择器
- 相关性选择器,抉择一个和输出最相干的案例
- 基于长度的案例选择器,输出长的时候按理睬少一点,输出多的时候,案例会多一些
了解了下面的这些外围概念之后,你就能够利用 LangChain 的弱小性能来构建适应性强、高效且可能解决简单用例的高级语言模型应用程序。
利用案例实战
如何应用 LangChain 做一款聊天机器人?
因为 LangChian 有相应的开源工具帮咱们把各种组件做了可视化,所以间接拖拽即可,咱们应用 LangFlow:
pip install langflow
而后运行命令:
langfow
如果和本地的 LangChain 有抵触,咱们能够应用 Docker 运行 langfow:
FROM python:3.10-slim
RUN apt-get update && apt-get install gcc g++ git make -y
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
WORKDIR $HOME/app
COPY --chown=user . $HOME/app
RUN pip install langflow>==0.0.71 -U --user
CMD ["langflow", "--host", "0.0.0.0", "--port", "7860"]
在界面上配置 LangChain 的三个组件:在最右下角是对应的聊天窗口,输出下 openai 的 key
开始聊天验证下咱们的配置:
整个过程基本上没怎么写代码,只有理解 LangChain 的组件的性能,基本上就能够搭建出一款简略的聊天机器人。
总结
本文介绍了 LangChain 框架,它通过提供模块化和灵便的办法简化了构建高级语言模型应用程序的过程。通过理解组件、链、提醒模板、输入解析器、索引、检索器、聊天音讯历史记录和代理等外围概念,咱们能够创立适宜特定需要的自定义解决方案。
置信在不远的将来,LangChain 无望在各个领域施展出巨大作用,促成工作效率的改革,让咱们一起期待吧!
本文由 mdnice 多平台公布