从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”下载

GitHub

Download ZIP

2、安装步骤

第1步:下载完成后解压压缩包,找到压缩包中【docker-compose.yaml】文件的位置。

第2步:打开终端,将目录切换到【docker-compose.yaml】文件所在的实际路径。

图1

第3步:输入 docker compose up -d 命令,启动docker容器应用。

第4步:如果第3步命令出错,打开docker-compose.yaml 文件,将nginx 服务的端口从 80:80 改为其他未被占用的端口,例如 8080:80,然后再重启docker compose。

3、验证Dify安装成功

打开Docker Desktop,出现以docker为命名的文件夹,即为安装成功。

图2

为什么要在本地通过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】激活

图3

  • 如果看到容器运行正常,可检查http://127.0.0.1 网址的端口是否正常,如上图我安装的网址是8000,通过http://127.0.0.1:8000即可访问。

图4

创建应用程序

1、打开Dify-"探索"菜单,选择内置应用。

图5

图6(创建翻译助手应用)

2、为翻译助手选择翻译模型

图7

安装模型

1、各类模型怎么选

  • LLM:帮你做一个能够生成或理解自然语言文本的模型。
  • Text Embedding:帮你把文本转换为向量表示,进行相似性计算。
  • Speech2text:帮你将语音输入转换为文本。
  • Moderation:帮你检测和过滤不适当内容 。
  • TTS:帮你将文本转换为语音 。

2、如何安装Kimi模型

因为网络原因无法使用ChatGPT,使用国内大模型Moonshot AI,通过下面步骤来完成。

图8

图9

图10

图11

图12

添加成功后,Dify的模型供应商界面

图13


3、如何安装Ollama模型

  • 以翻译助手为例,点击添加Ollama模型,需要添加LLM模型
  • 在Dify中集成Ollama,需要填写信息如图

图13

  • IP地址不能使用127.0.0.1,因为Dify是采用Docker安装,相当于安装到了一个虚拟的电脑上,可用ollmama上基础URL

图14

注意:模型名称要与ollama list得到的模型名称完全一致

创建翻译助手

在创建自己的应用程序之前,先使用内置的应用程序,掌握Dify的界面和功能,再创建自己需要的应用。以最常用的助手类AI为例,先掌握一下Dify的界面、如何整合添加好的模型、以及当翻译助手无法识别特殊用语,如何利用知识库解决。

1、首先利用Dify内置的Translate assistant,创建一个翻译助手。

2、在Dify探索中选择内置应用,选择匹配大模型,进入编排页面,确定好变量。

由于内建应用的提示已经写好,我们可以直接利用它的提示词,完成翻译功能。提示词分成了三部分:目的、 过程、结论。

-目的:主要作用是告诉大模型,我们将要完成的任务是将我输入的文字翻译成目标的语言。

-过程:为了方便大模型理解该如何输出结果,你需要把这里拆成两部分,一部分是解释如何直接翻译,另一部分是解释和意译。

-结论:确定结论的显示格式,依照过程分成了直译和意译两部分。

如果你想要提示词更灵活,可以使用变量功能。

以翻译为例,当用户选择不同目标语言、源语言和提问问题时,提示词会自动根据你的需求,选择是汉译英,还是英译汉。

随着你编写应用数量的增长,变量的妙处,你也会有更多体会。

3、测试不同模型,挑选出价格和性能最好的助手

再点击右上角更换不同的模型,观察哪个模型的表现更佳,价格也应该是辅助你选择的重要因素之一。

图15

图16

4、如何使用知识库

增加知识库,是翻译专有名词的利器,尤其是对特殊行业、场景来说。那么,该如何通过Dify加载呢?

  1. 选择最上方选项卡-知识库-点击创建知识库按钮-上传本地文档本地(中英文对照文本),其他设置保持默认即可。
  2. 添加后,在右侧的调试与发布,进行测试,观察输出的结果是否加载了资料库,是否成功显示了你期望的资料库结果,设置好模型的全部功能后,点击发布下拉菜单-点击更新按钮-保存。

通过发布下拉菜单的“运行”按钮,你可以访问你创建好的翻译助手

图17

备注:本地模型(ollama3)和Kimi(Moonshoot)的多模型翻译对比,不管是翻译速度还是翻译效果,Moonshoot明显好太多。

图18

有可能是Ollama3是本地搭建,个电脑配置较低。

创建订单查询助手

通过创建翻译助手,已经了解了助手类应用的创建基本步骤,接下来一起从零创建一个新的订单助手,让用户可以根据订单号查询自己的订单是否已经发货。

  1. 新建应用,应用有如下几种类型

应用类型

特点

区别

聊天助手

(Chat Assistant)

1、提供实时的交互式对话体验。

2、能够回答用户的问题、提供信息和解决问题。

3、通常基于自然语言处理技术,以理解用户查询。

主要用于客户服务和支持,与其他类型相比,更侧重于直接的人际交流

文本生成

(Text Generation)

1、能够自动创建或生成文本内容。

2、应用于撰写报告、生成创意文案等场景。

3、利用语言模型来模拟人类的写作风格。

与聊天助手相比,文本生成更侧重于内容创造而非交互。

Agent

(智能代理)

1、能够执行自动化任务或服务,如数据检索、信息管理和任务调度。

2、可以模拟人类行为来自动化复杂的工作流程。

3、通常具有学习和适应新任务的能力。

与聊天助手和文本生成相比,Agent更侧重于自动化和执行任务,而非直接的人类交互或内容创造。

工作流
(Workflow)

1、管理和优化业务流程,确保工作按预定顺序高效执行。

2、可以自动化复杂的业务规则和步骤。

3、通常集成了多个系统和组件,以提高效率。

工作流与其他类型相比,更侧重于整个业务流程的自动化和管理,而非单一的任务或交互。

这里我们先选聊天助手,接下来只需要简单的基础编排,就能完美实现订单查询功能。

  1. 设置提示词

你是一个订单查询助手,你需要在资料库中查询用户输入的订单信息,并显示出订单状态,只能显示用户要查询的单个订单,不要为用户显示全部的订单信息。

  1. 编写并上传知识库

为了能够让Dify查询订单,你需要将订单号和订单发货状态,逐一写入txt文件,并确保每行只有一个订单ip和发货状态。与翻译助手添加知识库步骤相同,将其添加到Dify即可。

查询订单的id,返回订单信息

订单id,运输状态

1,发货

2,未发货

  1. 选择模型

模型可以通过右上角的模型下拉列表选择,同样推荐你先从本地模型开始测试,如果本地模型表现不佳,再考虑费用较高的在线模型。

  1. 测试并保存

设置完成后,可以通过对话“查询001订单发货状态”等类似提示词,让模型从资料库提取发货状态,并给用户返回,这里你需要测试相同id、不同id、不存在id的回复情况,确保模型不会出现幻觉后,再保存退出。

图19

听百次不如亲自部署一次,有兴趣的朋友行动起来!!!

举报
评论 0