一、简介

Dify 是一个专注于 AI 应用开发的平台,提供从构思、开发到部署和监控的完整基础设施。它帮助团队构建能够投产并创造真正价值的 AI 解决方案。Dify 还提供智能化流程自动化与数据管理技术,旨在优化企业业务流程,提高工作效率。此外,Dify 是开源的,由专业团队和社区共同打造,适合多行业场景的 AI 解决方案。

官方地址

二、前期须知

这里使用本地部署的dify,好处如下

大模型个人练习观摩,建议使用阿里百炼里面的大模型,里面有1000万的免费使用额度,如果个人GPU很强悍,也可以使用本地部署,企业应用建议使用本地部署,保证信息安全。

需要掌握基本的docker、pg数据库、liunx的使用

三、演示环境说明

我dify部署在ubuntu 22.04下(部署完成:docker,docker-compose),部署教程自行寻找安装

大模型应用是阿里百炼里面的大模型(deepseek-v3)

Docker管理工具:Dpanel,部署教程

ssh工具:使用的是xshell,可以使用其他连接工具

pg数据库连接工具:使用的是navicat

四、部署

4.1下载dify文件,可以通过git或者直接下载zip压缩包

GitHub - langgenius/dify: Production-ready platform for agentic workflow development.

dify: Dify镜像仓库,原仓库地址:https://github.com/langgenius/dify,感谢dify团队以及社区的所有成员

4.2修改配置文件

# 解压
xxxxxt@xxxx-PowerEdge-R710:~/xx$ unzip dify-main_2.zip
# 修改名称
xxxxxt@xxxx-PowerEdge-R710:~/xx$ mv dify-main_3/ ../dify
# 进入目录
xxxxxt@xxxx-PowerEdge-R710:~/xx$ cd dify/docker/
# 拷贝文件
xxxxxt@xxxx-PowerEdge-R710:~/xx/dify/docke$ cp .env.example .env
# 修改.env文件
## EXPOSE_NGINX_PORT=80
## EXPOSE_NGINX_SSL_PORT=443
## 改成
## EXPOSE_NGINX_PORT=8089
## EXPOSE_NGINX_SSL_PORT=4433
xxxxxt@xxxx-PowerEdge-R710:~/xx/dify/docke$ vim .env



# 修改yaml文件
## postgres:15-alpine添加端口映射
## ports:
##       - '${DB_PORT:-5432}:${DB_PORT:-5432}'
xxxxxt@xxxx-PowerEdge-R710:~/xx/dify/docke$ vim docker-compose.yaml

# 运行docker-compose
xxxxxt@xxxx-PowerEdge-R710:~/xx/dify/docke$ sudo docker-compose up -d

4.3进入dpanel查看容器是否正常运行

4.4使用浏览器访问:ip:8089

注:首次登陆需要设置管理员用户和密码(管理员邮箱可以随便按邮箱格式输入,如:admin@163.com)

五、使用

5.1准备数据库使用数据

运行sql文件

# sql文件下载地址(需要有ipv6地址才能访问或用手机流量访问)
http://git.yexu.fun/yexu/script_backup/src/master/pgsql

5.2dify使用操作

推荐观看up主炼丹师马木木的视频:【【有手就会】10分钟带你用Dify搭建一个可视化数据分析助手,零代码实现数据库查询、图表展示、Excel生成,超简单!小白也能轻松学会  大模型|LLM-哔哩哔哩】 

5.2.1配置应用大模型

注:这里建议使用阿里云百炼,优点是不用自己搭建,大模型处理性能高。

5.2.2安装工具

5.2.3创建对话工作流>填写应用名称>点击创建

5.2.4点击添加LLM节点

# 角色
你是一位文字提炼专家
# 任务
负责把用户的查询数据需求进行提炼和总结,抓取关键数据查询文字,去掉和数据查询无关的内容,比如生成图表、生成Excel、生成表单等数据查询无关的内容,只保留提炼查询数据的文字
# 输出
只输出你提炼后的结果,无需其他语言,删除"\n"等无效字符

5.2.5添加rookie_text2data节点

# 这里使用的ip一定要用容器内部ip,否则会连不上数据库
# 数据库表名称
grade,class,course,teacher,student,student_score
# 自定义提示
表1 年级表(grade)
grade_id     SERIAL (PK)  年级编号
grade_name   VARCHAR(20)  年级名称
remark       TEXT         备注信息
表2 班级表(class)
class_id        SERIAL (PK)  班级编号
class_name      VARCHAR(20)  班级名称
grade_id        INT (FK)     所属年级
head_teacher_id INT (FK)     班主任编号
remark          TEXT         备注信息
表3 老师表(teacher)
teacher_id    SERIAL (PK)  老师编号
teacher_name  VARCHAR(50)  老师姓名
course_id     INT (FK)     所教课程
remark        TEXT         备注信息
表4 课程表(course)
course_id     SERIAL (PK)  课程编号
course_name   VARCHAR(50)  课程名称
remark        TEXT         备注信息
表5 学生表(student)
student_id    SERIAL (PK)  学生编号
student_name  VARCHAR(50)  学生姓名
age           INT          学生年龄(6~12岁)
gender        CHAR(1)      性别(男/女)
class_id      INT (FK)     所属班级
remark        TEXT         备注信息
表6 学生成绩表(student_score)
score_id      SERIAL (PK)  成绩编号
student_id    INT (FK)     学生编号
course_id     INT (FK)     课程编号
score         NUMERIC(5,2) 成绩(0~100)
remark        TEXT         备注信息

5.2.6添加rookie_excute_sql工具

5.2.7添加条件分支

5.2.8图判断

# 任务
根据用户的需求,以及数据内容,自行判断那种图表类型合适
# 输出
只输出你推荐的图表类型名称,从以下图表类型中选择一个输出:柱状图,折线图,饼图,散点图,带有涟漪特效动画的散点(气泡)图,K线图,雷达图,热力图,树图,矩形树图,旭日图,地图,路径图

# 任务
请将用户提供的文档内容转化为标准的json内容,不要包含"json"的标签,只输出标准json

5.2.9判断excel文件

# 任务
把数据库数据转化为表格类型的markdown文本内容,把表头翻译为中文
# 输出
只输出转化后的表格类型的markdown,不要"markdown\n"等语言标签,只输出标准的markdown表格

5.2.10直接回复

# 角色
你是一个精通数据处理、分析和总结的大师
# 任务
你可以根据用户的问题,从提供的数据库中检索相关信息,整合提炼后用精准合适的自然语言回复用户
# 输出
1.若用户只是查询数据,则提炼后直接回复数据内容即可
2.若用户需要你分析数据,则你可以结合数据给专业的分析内容

5.2.11整体及使用