从0开始在本地部署聊天机器人
如何部署Dify和在Dify上面部署相应的应用,如部署翻译助手?不要担心,这不需要涉及编程,适合于零基础入门,有一定操作系统操作经验的小伙伴。
工具介绍
Docker
Docker是一个开源的容器化平台,它允许开发者将应用及其依赖打包成轻量级、可移植的容器。Docker通过使用操作系统级虚拟化技术,如Linux命名空间和控制组(cgroups),实现了应用的隔离和资源限制,确保了应用在不同环境下的行为一致性。
优点:安装Docker可以简化部署过程,避免安装许多依赖性软件。
网址:
https://www.docker.com/products/docker-desktop/
Dify
Dify 是一个专注于易用性的 LLMOps(Large Language Model Operations)平台。其主要用途在于简化和加速基于大型语言模型(如GPT-4)的应用程序开发与运维流程。Dify 通过提供一套可视化的工具集,帮助开发者快速将强大的AI功能整合到他们的产品和服务中,而不需要深入掌握复杂的机器学习或自然语言处理技术。
优点:支持不同的模型(本地、在线、API、国内、国外...)、调用本地知识库、连接外部工具、支持工作流编辑任务、用户权限控制、API
网址:https://dify.ai/zh
Dify安装
1、下载安装Dify脚本
点击“Download ZIP”下载
2、安装步骤
第1步:下载完成后解压压缩包,找到压缩包中【docker-compose.yaml】文件的位置。
第2步:打开终端,将目录切换到【docker-compose.yaml】文件所在的实际路径。
第3步:输入 docker compose up -d 命令,启动docker容器应用。
第4步:如果第3步命令出错,打开docker-compose.yaml 文件,将nginx 服务的端口从 80:80 改为其他未被占用的端口,例如 8080:80,然后再重启docker compose。
3、验证Dify安装成功
打开Docker Desktop,出现以docker为命名的文件夹,即为安装成功。
为什么要在本地通过Docker下载安装Dify?
因为网页访问的就是Docker里安装的Dify,如果不使用Docker,直接在Windows里安装Dify会非常复杂。
Dify配置
第1步:打开浏览器,访问 http://127.0.0.1
第2步:设置你的管理员账户、邮箱及密码,特别提醒这里一定要记住你的账号密码,这是最大的管理员权限
第3步:如果不能访问http://127.0.0.1,如何处理
- 在终端运行【docker ps】,该命令将列出所有正在运行的Docker容器,确认你需要使用的容器是否在运行,并且是否绑定到正确的端口。如果没有看到预期的容运行,请在终端输入运行【docker compose up -d】激活
- 如果看到容器运行正常,可检查http://127.0.0.1 网址的端口是否正常,如上图我安装的网址是8000,通过http://127.0.0.1:8000即可访问。
创建应用程序
1、打开Dify-"探索"菜单,选择内置应用。
2、为翻译助手选择翻译模型
安装模型
1、各类模型怎么选
- LLM:帮你做一个能够生成或理解自然语言文本的模型。
- Text Embedding:帮你把文本转换为向量表示,进行相似性计算。
- Speech2text:帮你将语音输入转换为文本。
- Moderation:帮你检测和过滤不适当内容 。
- TTS:帮你将文本转换为语音 。
2、如何安装Kimi模型
因为网络原因无法使用ChatGPT,使用国内大模型Moonshot AI,通过下面步骤来完成。
添加成功后,Dify的模型供应商界面
3、如何安装Ollama模型
- 以翻译助手为例,点击添加Ollama模型,需要添加LLM模型
- 在Dify中集成Ollama,需要填写信息如图
- IP地址不能使用127.0.0.1,因为Dify是采用Docker安装,相当于安装到了一个虚拟的电脑上,可用ollmama上基础URL
注意:模型名称要与ollama list得到的模型名称完全一致
创建翻译助手
在创建自己的应用程序之前,先使用内置的应用程序,掌握Dify的界面和功能,再创建自己需要的应用。以最常用的助手类AI为例,先掌握一下Dify的界面、如何整合添加好的模型、以及当翻译助手无法识别特殊用语,如何利用知识库解决。
1、首先利用Dify内置的Translate assistant,创建一个翻译助手。
2、在Dify探索中选择内置应用,选择匹配大模型,进入编排页面,确定好变量。
由于内建应用的提示已经写好,我们可以直接利用它的提示词,完成翻译功能。提示词分成了三部分:目的、 过程、结论。
-目的:主要作用是告诉大模型,我们将要完成的任务是将我输入的文字翻译成目标的语言。
-过程:为了方便大模型理解该如何输出结果,你需要把这里拆成两部分,一部分是解释如何直接翻译,另一部分是解释和意译。
-结论:确定结论的显示格式,依照过程分成了直译和意译两部分。
如果你想要提示词更灵活,可以使用变量功能。
以翻译为例,当用户选择不同目标语言、源语言和提问问题时,提示词会自动根据你的需求,选择是汉译英,还是英译汉。
随着你编写应用数量的增长,变量的妙处,你也会有更多体会。
3、测试不同模型,挑选出价格和性能最好的助手
再点击右上角更换不同的模型,观察哪个模型的表现更佳,价格也应该是辅助你选择的重要因素之一。
4、如何使用知识库
增加知识库,是翻译专有名词的利器,尤其是对特殊行业、场景来说。那么,该如何通过Dify加载呢?
- 选择最上方选项卡-知识库-点击创建知识库按钮-上传本地文档本地(中英文对照文本),其他设置保持默认即可。
- 添加后,在右侧的调试与发布,进行测试,观察输出的结果是否加载了资料库,是否成功显示了你期望的资料库结果,设置好模型的全部功能后,点击发布下拉菜单-点击更新按钮-保存。
通过发布下拉菜单的“运行”按钮,你可以访问你创建好的翻译助手
备注:本地模型(ollama3)和Kimi(Moonshoot)的多模型翻译对比,不管是翻译速度还是翻译效果,Moonshoot明显好太多。
有可能是Ollama3是本地搭建,个电脑配置较低。
创建订单查询助手
通过创建翻译助手,已经了解了助手类应用的创建基本步骤,接下来一起从零创建一个新的订单助手,让用户可以根据订单号查询自己的订单是否已经发货。
- 新建应用,应用有如下几种类型
应用类型 | 特点 | 区别 |
聊天助手 (Chat Assistant) | 1、提供实时的交互式对话体验。 2、能够回答用户的问题、提供信息和解决问题。 3、通常基于自然语言处理技术,以理解用户查询。 | 主要用于客户服务和支持,与其他类型相比,更侧重于直接的人际交流。 |
文本生成 (Text Generation) | 1、能够自动创建或生成文本内容。 2、应用于撰写报告、生成创意文案等场景。 3、利用语言模型来模拟人类的写作风格。 | 与聊天助手相比,文本生成更侧重于内容创造而非交互。 |
Agent (智能代理) | 1、能够执行自动化任务或服务,如数据检索、信息管理和任务调度。 2、可以模拟人类行为来自动化复杂的工作流程。 3、通常具有学习和适应新任务的能力。 | 与聊天助手和文本生成相比,Agent更侧重于自动化和执行任务,而非直接的人类交互或内容创造。 |
工作流 | 1、管理和优化业务流程,确保工作按预定顺序高效执行。 2、可以自动化复杂的业务规则和步骤。 3、通常集成了多个系统和组件,以提高效率。 | 工作流与其他类型相比,更侧重于整个业务流程的自动化和管理,而非单一的任务或交互。 |
这里我们先选聊天助手,接下来只需要简单的基础编排,就能完美实现订单查询功能。
- 设置提示词
你是一个订单查询助手,你需要在资料库中查询用户输入的订单信息,并显示出订单状态,只能显示用户要查询的单个订单,不要为用户显示全部的订单信息。
- 编写并上传知识库
为了能够让Dify查询订单,你需要将订单号和订单发货状态,逐一写入txt文件,并确保每行只有一个订单ip和发货状态。与翻译助手添加知识库步骤相同,将其添加到Dify即可。
查询订单的id,返回订单信息
订单id,运输状态
1,发货
2,未发货
- 选择模型
模型可以通过右上角的模型下拉列表选择,同样推荐你先从本地模型开始测试,如果本地模型表现不佳,再考虑费用较高的在线模型。
- 测试并保存
设置完成后,可以通过对话“查询001订单发货状态”等类似提示词,让模型从资料库提取发货状态,并给用户返回,这里你需要测试相同id、不同id、不存在id的回复情况,确保模型不会出现幻觉后,再保存退出。
听百次不如亲自部署一次,有兴趣的朋友行动起来!!!
请先 后发表评论~