引言
chatgpt大火,各种应用和开发也随之而来。PDFgpt、口语对话gpt,其实这些应用的本质都是通过调用chatgpt的api,然后配合一些现有的功能实现的。简单来说就是:包装了一下chatgpt的服务,使其在某个领域的使用更加方便。
现在最方便的莫过于langchain链式调用chatgpt实现想要的功能。
什么是langchain?
LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。
看不懂也没关系,总而言之,langchain已经很方便了,但是对于非程序员来说还是很麻烦,主要就是不想接触代码。
最近发现了一个很好用的开源的项目:flowise,通过UI实现零代码开发专属自己的gpt应用。
有没有这么神乎?看下去就知道了。
不耽误大家时间,直接上效果图。 这个是我写的一个很简单的翻译功能,可能有人要说了:这功能也太废了……诶,别急啊,饭得一口口吃。
看这个主要目的还是想告诉大家这有多简单,其实就是像拼积木一样,把每个板块的线连接起来,每个板块都是现成的。
下面是一个chatpdf的实现: 也非常简单对不对!平时看着程序员对着一堆代码开发的程序,你只能遗憾自己没有学过相关技术,在ai时代只能落后于人。现在自己就能开发了!(站起来了!)
下面给大家具体讲一下如何实现这个chatPDF(从头到尾零基础保姆级教程)
- 首先:打开终端(windows电脑上面快捷键:win+R,输入cmd,回车)进入一个黑框框
- 第二步:如果你的电脑下载过node.js就输入命令:npm install -g flowise (如果不知道有没有装过也不用着急,你可以通过以下步骤在命令行窗口中检查 npm 是否已经安装:
- 打开命令行工具(例如:Windows 中的命令提示符或 PowerShell,macOS 和 Linux 中的终端)。
- 在命令行中输入
npm -v
并按下回车(或enter)键。 - 如果你成功得到了 npm 的版本信息,那么说明 npm 已经被正确安装。
如果你的计算机没有安装 Node.js,那么可以按照以下步骤来安装 npm:
- 首先,从 Node.js 的官方网站(nodejs.org/ )下载适合你计算机操作系统的最新版本的 Node.js 安装程序,并运行安装程序。
- 执行安装程序的过程中,Node.js 的安装程序也会帮你安装 npm。在安装程序完成后,你可以使用以上的步骤来检查 npm 是否已经安装成功。
完成以上安装并成功运行 npm -v 命令后,你就可以愉快地使用 npm 来管理你的项目依赖项和执行其他有用的任务了。然后也是输入命令:npm install -g flowise) 等待片刻就能安装好我们需要的软件了。
- 第三步:在命令行输入:npx flowise start (启动服务)
- 第四步:在浏览器输入网址:http://localhost:3000 (这是本地的端口)进入flowise的网页
(如果颜色和我的不一样没关系,我开了黑夜模式而且创建过应用了,但是没有影响)
- 第五步:在右上角点击“Add New”,进入一个画布界面
先简单介绍一下页面布局:左边的蓝色加号是用来添加模块的
右上角的三个按钮分别是:调用,保存,设置(我们只用到保存) 三个按钮下面还有一个紫色的对话按钮,点开是我们的聊天输入框
- 第六步:搭积木 通过在加号里面找到对应的模块,拖到画布上,然后连线成我下图的模样
看不清?没事,我早就帮你们想好了,我已经导出了一份文件,你们直接导入就可以了(右上角点击设置那里,点击load chatflow)
- 第七步:接下来就是输入openai的api和pinecone的api了,openai的api网上一搜一大把教你怎么获取,重点说一下pinecone。 什么是pinecone,……这个不好解释,你就理解成是把你上传的pdf分解成块后存储用的吧。 先去pinecone的官网注册一个账号。官网连接:app.pinecone.io/ 注册也挺简单的,不多讲了,不会的在评论区问吧。 下面详细讲讲参数设置
点击右上角的CREATE INDEX,
index name随便取(后面需要输入),Dimensions建议是1536(效果最好),然后确定,在首页左侧找到api keys,复制里面的值, 回到flowise里面,在Pinecone模块框里面填入你复制的key,然后下面的environment和index也需要改为你pinecone里面的设置。
- 第八步:接下来就是激动人心的时刻了,在PDF模块上传你的PDF文件,然后点击右上角保存按钮。保存完成后,点击对话按钮
。 我的测试pdf内容就是对张飞的百度百科描述,可以看到我们“定制的”chatPDF很好的完成了任务。 至于还有一些部署到线上以及记忆功能,之后有机会再慢慢写文章讲。
接下来,是对于整个项目的具体技术分析,有需要的就看,不需要的就点赞即可。(手动狗头)
首先我们整个项目的逻辑就是:上传PDF文档,然后提取文字,分割成块,然后嵌入并存储起来,最后通过ai分析我们输入的文字,在我们的数据库中寻找相似性文本,总结输出。
我们先需要一个PDF加载器(对应我们的PDF模块),然后需要一个递归字符拆分器(recusive character text splitter)。字符分解成一个个矢量,发送到pinecone的数据库(对应pinecone模块),这里需要一个嵌入,这里我们用了一个openai 的embeddings,最后需要一个conversational retrieval QA chain(检索问答模块),这个模块需要一个LLM(我们这里使用opanai的模型)以及verctor store retriever(矢量存储检索器,这里我们使用了pinecone),至此,搭建完成。
整个项目逻辑清晰,可扩展性强,有一些地方解释不到位或者理解有误,还请海涵。有问题也可以私信或者评论区留言。
文章分享不易,点点赞吧。感谢您嘞。