随着LLM(Large language models )的发展,不仅仅出现了很多新的应用,一些开发框架也发展很快,典型的就是本文介绍的项目——LangChain,目前LangChain几乎一天一个版本,几个月时间Star数目已经49k+。
LangChain是一个开源框架,能够把LLM的能力做为一个模块与其他能力组合,创造新的功能更强大的应用。
本文先阐述了LangChain解决的问题与背景,然后介绍LangChain中的基本概念,第三部分使用LangChain的python框架,用100行代码实现了一个简单的答疑机器人,通过此示例,能对LangChain的应用场景有个快速的认知。
1. 什么是LangChain
官方的表述:“Building applications with LLMs through composability”,LangChain的目的是为了开发应用,通过模块组合的方式使用LLM,并与其他模块组合的方式来创造应用。
使用LangChain的目的是Building applications ,下面从两个方面分析下在开发应用过程中LangChain能解决的问题,一是从一个框架的角度,也就是“连接”的角度,二是从对于目前LLM模型能力补充的角度,LangChain中不少设计也是针对于此。
1.1 LangChain让LLM这个大脑有了身体,并且能使用工具
LLM取得了快速发展,能够基于LLM实现新的功能更强大的应用,但如果只使用LLM的能力,能做的事情是非常有限的,典型的是看到的对话交互。LangChain能够连接LLM的能力与目前已有的其他能力,创造能力更强大的应用。有些类似于ChatGPT支持插件,但LangChain作为一个框架,把LLM抽象为一个模块,也就是说这个LLM的模式是可以替换的,比如集成公司自研的模型。
1.2 目前的LLM模型使用有不少限制,LangChain能力可以看作对LLM的补充
- 获取实时信息
- 获取私域信息
- 具备执行动作
训练的数据只到2021年,一些新的信息无法纳入。OpenAI不同模型的数据可以参考:OpenAI Models。解决这个问题,LangChain能够集成搜索引擎模块,在处理问题时,如果是最新的事件,通过搜索引擎来获取数据并分析。
context的token数量有限制
token指的是 OpenAI 处理文本的基本单位。例如,“hamburger” 被分成 “ham”、“bur” 和 “ger” 三个 Token,而 “pear” 是一个 Token。1个 Token 大约相当于 4 个字符或者 0.75 个英文单词。而且中文相对英文,使用的token更多(“你好,世界” 11个token,"Hello World"只有两个token),可以使用OpenAi提供的token分析器来分析,地址:https://platform.openai.com/tokenizer。
GPT3.5不同模型token为4k到8k,GPT4模型有8k和32k的tokens模型。不同模型的token可以参考:OpenAI Models,OpenAi的官方说明:What are tokens and how to count them?。
LangChain在一些场景下能部分解决这个问题,比如检索分析本地资源场景,通过本地构建embedding的库,搜索结果后,让LLM组织语言来回答。embedding简单可以理解为文本的向量化,向量化后能够让机器来计算文本的相似程度。在对话场景下,如果需要记录聊天记录,LangChain有专门的Memory模块来实现此能力。
2. LangChain的基本概念
本章节主要目的不是系统介绍LangChain中的概念,主要目的是能让未接触过LangChain的同学能有个快速认知,主要关注于Chain与Agent组件。学习一门技术最好的方式是阅读官方文档,学习LangChain也是,需要要系统学习,可以参考文档,LangChain的文档地址:🦜️🔗 LangChain | 🦜️🔗 LangChain。文档很好读,LangChain也不复杂,看Twitter上分享,很多同学都按耐不住,学学python,自己动手造AI应用。
LangChain中主要的Components目前主要有:Schema、Models、Prompts、Indexes、Memory、Chain、Agent,参考:Components | 🦜️🔗 LangChain,其中核心的概念是Chain与Agent,本章节主要围绕着两个概念展开。
一种利用 ChatGLM-6B + langchain 实现的基于本地知识的 ChatGLM 应用。增加 clue-ai/ChatYuan 项目的模型 ClueAI/ChatYuan-large-v2 的支持。其整体流程如下图。
基于FlowWise快速完成langChain+LLM搭建
git clone https://github.com/FlowiseAI/Flowise.git
GitHub - FlowiseAI/Flowise: Drag & drop UI to build your customized LLM flow using LangchainJS
安装教程
Flowise|无代码 ChatBot 构建平台|LangChain - 知乎
本人是搭建是基于阿里云主机docker自己本地构建的镜像
下载源码
git clone https://github.com/FlowiseAI/Flowise.git
进入Flowise目录,构建镜像
docker build --no-cache -t flowise .
运行容器
docker run -d --name flowise -p 3000:3000 flowise
查看是否运行成功
docker ps
成功访问Flowise 文章来源:https://www.toymoban.com/news/detail-497328.html
文章来源地址https://www.toymoban.com/news/detail-497328.html
到了这里,关于LangChain让LLM连接更多能力的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!