⛓️ 无需编写代码就可以接入私有域数据 | 创建自己的AI客服机器人 | LangFlow

作者:FancyPig | 发布时间: | 更新时间:

相关阅读

视频讲解

在本期视频中,我们将分享一个神奇的平台,让你在无需编写任何代码的情况下,轻松创建出强大的聊天机器人!是的,你没听错,就是拖拽组件,连接起来就能打造聊天机器人!你可能听说过LangChain,但它需要编写大量的Python或JavaScript代码。我们将陆续为大家介绍Flowise和LangFlow。它们都有令人眼前一亮的用户界面,让你轻松上手!在这个视频中,我们将重点关注LangFlow,带你一步步安装,并教你如何创建各种实用的应用程序!当然,我们也会探讨一些更复杂的例子,让你大开眼界!

相关资料

图文讲解

今天,我想向你展示一个平台,在这个平台上,你可以创建强大的聊天机器人,而无需编写任何代码。这些只是拖放组件,你可以将它们连接在一起,创建聊天机器人。

如果你一直在关注我的频道,我使用LangChain创建了很多内容。但为了让它发挥作用,你需要用Python或JavaScript写相当多的代码。所以我想看看那些可以让你在大型语言模型上建立应用的平台,而不需要写任何代码。我遇到了这两个不同的选择。第一个叫Flowise,它使用LangJS。他们在上面建立了一个相当不错的用户界面。第二个叫LangFlow,它使用的是一个非常类似的概念。

所以你有拖放组件,你把它们连接在一起以创建应用程序。现在LangFlow以及LangWise的界面看起来都非常相似。所以在这个视频中,我将向你展示如何安装它们中的一个,而且我们将特别关注LangFlow。在随后的视频中,我可能也会为Flowise制作一个视频。我将带领你完成一个逐步的安装过程,然后我将告诉你如何能够创建不同的应用程序。而且我们也会看一些更复杂的例子。现在,在后台,无论是Flowise还是LangFlow,他们都在使用LangChain,而这只是一个封装包。如果你不熟悉LangChain,或者想了解基本概念,所以我建议你看这个视频。

data-postsbox="{"id":35592,"title":"ChatGPT如何读取PDF文档 | LangChain + GPT","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/04/20230428064637566.jpg","cover_video":"https://v.pigsec.cn/ChatGPT%20for%20YOUR%20OWN%20PDF%20files%20with%20LangChain_ts.m3u8","views":2691,"comment_count":1,"category":"knowledge","is_forum_post":false}">{"id":35592,"title":"ChatGPT如何读取PDF文档 | LangChain + GPT","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/04/20230428064637566.jpg","cover_video":"https://v.pigsec.cn/ChatGPT%20for%20YOUR%20OWN%20PDF%20files%20with%20LangChain_ts.m3u8","views":2691,"comment_count":1,"category":"knowledge","is_forum_post":false}
data-postsbox="{"id":36532,"title":"ChatGPT如何读取网页 | 如何设计一个客服机器人 | Langchain + GPT","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/05/20230510024243708.jpg","cover_video":"https://v.pigsec.cn/CHATGPT%20For%20WEBSITES-%20Custom%20ChatBOT-%20LangChain%20Tutorial_ts.m3u8","views":2596,"comment_count":0,"category":"knowledge","is_forum_post":false}">{"id":36532,"title":"ChatGPT如何读取网页 | 如何设计一个客服机器人 | Langchain + GPT","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/05/20230510024243708.jpg","cover_video":"https://v.pigsec.cn/CHATGPT%20For%20WEBSITES-%20Custom%20ChatBOT-%20LangChain%20Tutorial_ts.m3u8","views":2596,"comment_count":0,"category":"knowledge","is_forum_post":false}
data-postsbox="{"id":36732,"title":"ChatGPT知识问答 |OpenAI Embeddings最佳本地化替代方案 | Instructor Embedding","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/05/20230513105238943.jpg","cover_video":"https://v.pigsec.cn/BEST%20OPEN%20Alternative%20to%20OPENAI%27s%20EMBEDDINGs%20for%20Retrieval%20QA_%20LangChain_ts.m3u8","views":3152,"comment_count":0,"category":"knowledge","is_forum_post":false}">{"id":36732,"title":"ChatGPT知识问答 |OpenAI Embeddings最佳本地化替代方案 | Instructor Embedding","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2023/05/20230513105238943.jpg","cover_video":"https://v.pigsec.cn/BEST%20OPEN%20Alternative%20to%20OPENAI%27s%20EMBEDDINGs%20for%20Retrieval%20QA_%20LangChain_ts.m3u8","views":3152,"comment_count":0,"category":"knowledge","is_forum_post":false}

让我们快速看一下安装过程。我在Windows上,但在不同的平台上,安装过程会保持相当一致。 不幸的是,为了运行这些基于用户界面的平台,你仍然需要Python。所以首先,我建议安装Python以及Conda,并为这个特定项目创建一个新的虚拟环境。所以为了创建一个虚拟环境,我们将使用Conda。所以我将说Conda create,然后-n ,现在我们需要给我们的新的虚拟环境起一个名字。所以我已经有了一个叫做Flow的虚拟环境,但是你可以给它起任何你想要的名字。

conda create -n langflow

一旦你创建了你的虚拟环境,那么你需要激活它。所以我们要使用conda activate,然后是我已经有虚拟环境。所以我要把它叫做LangFlow,点击回车,对吗?

conda activate langflow
pip install langflow

你可以看到我们现在在我们的虚拟环境中。好的,接下来我们需要安装LangFlow包。所以我们将使用 pip install,然后是 langflow。我已经安装了它,所以你会看到它说满足要求。但如果你是第一次安装它,这一步将需要相当多的时间。好的,接下来我们只需要运行这个命令,也就是python -m langflow,或者你可以直接输入langflow,都应该可以。

python -m langflow

所以让我们看看会发生什么。因此,它只是在这个特定的IP地址上启动了一个网络应用,这是你的本地主机(localhost), 它使用7860作为端口。只要到你的浏览器中输入这个地址,你就会看到这个应用程序已经启动并运行。现在在后台,你会看到这里正在发生的一切。所以它已经抛出了一些错误信息。我们将在稍后看一下为什么会发生这种情况。现在的基本结构,所以它有一些组件。这些是LangChain中所有的组件。而且正如我之前提到的,它在后台使用LangChain。所以你可以来这里,在浅色和深色主题之间切换。我喜欢黑暗主题,所以我打算在视频的其余部分保留这个。这是一个非常简单的拖放界面。你只需拖动不同的组件,将它们连接在一起,就可以创建应用程序。所以我们来看看有哪些不同的组件。所以有一些代理,所以CSV代理,JSON代理,然后在链方面。所以这些是LangChain中可用的链。所以我想不是所有的都可以用,但是比如说,你可以创建一个LLM链或者对话链,对吗?然后对于加载不同类型的文件,他们有一个相当全面的列表。例如,有一个PyPDF加载器,有一个文本加载器,如果你想与网站互动,也有一个基于网络的加载器。我们将在稍后看几个例子,对吗?然后在嵌入方面,现在,他们似乎只支持OpenAI的嵌入,但这实际上可能会改变。他们可能应该包括对其他的支持。在LLM方面,所以有一个ChatOpenAI,Hugging Facehub,Llama CPP,OpenAI。所以这很好。这是个好的开始。那么也有记忆的模块。所以如果你想给你的聊天机器人添加记忆,那么在提示方面,那么让我们看看他们有什么。他们有一个提示模板,这很好。然后是零次提示,几次提示模板,这个很好,很有用。然后有一个字符文本分割器。这对分割你的文件很重要,特别是如果它们超过了你的大型语言模型的上下文窗口。好的,所以他们有相当不错的工具集,你可以与之互动。这些工具足以让你开始实验大型语言模型。所以这对于创建快速原型是很好的。所以让我们来看看我们将如何做到这一点。因此,举例来说,假设我想创建一个聊天机器人。所以我打算使用对话链。让我把它做得大一点,这样它就可以看到了。然后,为了连接这个对话链,我们需要一个大的语言模型。所以为了让事情变得非常简单,我们将从ChatOpenAI开始。这就是OpenAI的基本聊天机器人。

好的,现在如果你看到对话链,那么它期望有两个输入。一个是记忆,另一个是LLM,也就是大的语言模型。输出将是一个对话链,对吗?

但这个具体的模块,如果你看到,它只有一个输出,就是ChatOpenAI,对吗?现在你可以简单地将这些连接在一起。由于某些原因,这个连接并不真正可见,但有一个连接。让我把它切换到日间模式,这样你就可以看到。

我们简单地把这两点连接起来。现在它们被连接在一起了。现在,为了试验这个,他们提供了这个简单的聊天界面。所以,无论你创建什么工作流程,如果它成功了,那么你就能把它作为这里的聊天工具,对吗?而且最棒的是,他们还提供了这个代码部分。

所以它告诉你,如果你创建了一个工作流程,你如何在你自己的Python代码上使用这个,如果你想把它作为一个应用程序的一部分,对吗?因此,这里是它将如何与API一起工作。所以现在,我们的流程被称为一个新的流程,所以它会为其创建一个JSON文件,对吗?如果你想直接使用Python版本的Langflow,那么你只需加载你的JSON文件,然后你就可以提出问题。我们将在稍后更详细地研究这个问题。所以首先,让我们看一下这里。对于这个ChatOpenAI,我们有四个不同的选项,也就是3.5Turbo,也就是ChatGPT,GPT-4,和GPT-32K。现在,我只能访问ChatGPT版本,所以我将会使用这个版本。然后你可以设置温度,让我们把它保持为零。然后你需要提供OpenAI的API密钥。你可以从你的账户中获得OpenAI的API密钥,所以我继续,复制了它,让我把它粘贴在这里,对吗?我想我们应该都准备好了。现在,如果你注意到,这变成了一个绿色的勾,这意味着我们已经准备好使用这个工作流程。现在,为了使用它,你需要简单地去这里,对吗?

让我们问一个问题,所以我会说,什么是美国的首都,好吗?

而这应该会从ChatGPT中得到回应。所以它正在处理它。你实际上可以看一下命令行,在那里你可以看到正在发生的一切。好的,所以它出现了一个响应,说美国的首都是华盛顿特区,这是正确的,然后它提供了一些更多的细节,因为它在使用ChatGPT,对吗?

而这里是在后端,所以它使用的是提示模板,提示模板是下面是人类和人工智能之间的友好对话,人工智能是健谈的,并从其上下文中提供了很多具体的细节,对吗?然后它只是提供我们给它的提示词,人工智能就会做出回应。一旦它执行了提示模板,那么它就会说,链完成,对吗?所以如果你熟悉Langchain提示词,或提示模板,这看起来会非常熟悉。好的,这就是你如何创建一个基本的聊天机器人。但让我们给它添加一些记忆,因为我们希望它能记住以前的对话。所以我们会去记忆,然后我可以选择这个对话缓冲区的记忆,对吗?

而这有一个历史键。所以将要发生的是,它将提供提示以及对话的历史,回到我们的ChatGPT,对吗?所以我们要连接这个,让我再切换一下。是的,它被连接了,对吗?所以现在,这个具体的工作流程应该包含有记忆。

只要确保你等待这个变成绿色。

好的,所以现在可以使用了。所以我打算回到我的聊天界面。我要删除之前的聊天记录,再问一次同样的问题,什么是美国的首都,对吗?然后让我们看看它的结果。因此,它又说美国的首都是华盛顿特区。这很好。好的,让我们问问它的人口是多少,对吗?所以现在,它应该记得我们正在谈论的背景,华盛顿特区。所以这是非常好的。你能够创建这个工作流或流程。但你如何在你自己的应用程序中使用这个?因此,如果你回到他们的GitHub页面,他们提供了一个例子,你如何可以在谷歌云上部署这个,也可以在Jina AI云上部署。我对这个不熟悉,但你可以和他们一起做这个。本质上,你所需要的只是你的工作流程的JSON文件。现在,让我告诉你如何创建那个JSON文件。所以只需转到导出,对吗?

这里你给一个名字。所以让我们说我要叫它聊天机器人基本,对吗?然后你可以给一个描述,对吗?如果你想把API密钥作为流程的一部分来存储,你可以这样做,但我不会这样做。然后简单地点击下载流程。

这里是你创建的JSON文档的例子,对吗?你可以看到,在后端,它实际上是使用langchain的一切。

所以,例如,如果你看这里,这是它在后端调用的东西。因此,一旦你创建了一个流程,你就可以把它整合为你的Python代码或你的应用程序的一部分。

所以,比如说,如果你想使用我们刚刚创建的那个特定的流程,那么你就要使用这个代码段。

现在我们假设你创建了一个流程,你保存了它,你想加载它来修改它。为此,你需要去点击导入,然后你有两个选项。

你可以看一些例子,或者你可以加载本地文件。

所以我们会点击本地文件,然后你可以简单地选择你已经创建的JSON文件。

所以这时我们要在另一个标签中打开同样的工作流程。所以这就是你如何创建导出和加载工作流程。这是一个快速实验和原型设计的方式伟大的工具。但现在让我们来看看他们有一些更复杂的例子。我们不打算运行这些例子,但只是看看他们所创建的流程。所以我们会去看例子,然后你可以看到有不同可用的选项或例子所以,例如,这里有一个入门的基本图表,一个有提示和历史的机器人,这是我们创建的。然后你有一个矢量存储的PDF加载器。所以,也许我们就先看看矢量存储。

因此,让我们看看作为这个矢量存储流程的一部分而被使用的不同组件。

所以首先,你有基于网络的加载器(WebBaseLoader)。

所以看起来它正在加载网页或来自这个特定网站的FAQ页面。这里是他们在这个例子中使用的网站。接下来他们有一个字符分割器,它简单地把这个文件分成不同的块。在这种情况下,他们使用的是1,000个块的大小,200个令牌的重叠。紧随其后的是一个chroma矢量数据库或矢量存储。所以它把这些块和OpenAI的嵌入模型放在一起,为每个文件创建嵌入。然后它只是有另一个组件,这是与矢量存储有关的信息。 如果你一直关注我的视频,这整个工作流程与我所展示的非常相似。 实际上,我有一个关于如何为你的网站创建自定义聊天机器人的示例视频。所以,如果你想更深入地了解所涉及的所有组件,那么请看那个视频。 现在再次回到工作流程。然后他们把矢量数据库作为一个链条的一部分连接起来。在这种情况下,他们将其连接到一个大型的语言模型,也就是DaVinci-003模型。

所以这将是大语言模型。这个工具的伟大之处在于它可以让你设置不同的选项。所以,例如,如果你想的话,你可以选择一个不同的LLM。所以为了运行这样的流程,你必须提供你的OpenAI密钥,将其放入链接模型和LLM模型中。好的,我们也来看看另外几个例子。也许我们会看一下PDF加载器。现在谈论PDF,这是个热门话题。所以其余的工作流程与我们看到的矢量商店的工作流程非常相似。唯一的变化是现在他们使用了一个PDF加载器,对吗?所以你可以简单地选择一个PDF文件,然后它将通过其余的流程。因此,我将创建很多更详细的视频,介绍如何构建应用程序和运行这些应用程序。我在这里遇到了一些问题。我认为代码中仍有一些bug。所以我没能像PDF加载器那样运行。但可能是在我这边,我可能在安装时有一些问题。总的来说,这是一个伟大的概念。而且如果执行得好,它是一个伟大的工具,可以让你做非常快速的原型设计。好的,玩一玩,看看这在你自己的工作流程中是否有用。我也会制作关于Flowise的视频,并比较这两个工具。如果你有任何问题或意见,请把它们放在下面的评论区。

如果你喜欢这个视频,请考虑喜欢并订阅这个频道。

感谢您的观看,下期再见。

标签:python, 机器人, openai, 聊天机器人