
Dify: 大模型(LLM) 应用开发平台
Dify是一个用于构建AI应用程序的开源平台,它融合了后端即服务(Backend as Service,BaaS)和LLMOps(大语言模型运维)理念。Dify平台旨在简化和加速生成式AI应用的创建和部署,为开发者提供了一个用户友好的界面和一系列强大的工具。💡Dify 一词源自 Define + Modify,意指定义并且持续的改进你的 AI 应用,它是为你而做的(Do it for you)。
Dify: 大模型(LLM) 应用开发平台
前言
Dify
是一个用于构建AI应用程序的开源平台,它融合了后端即服务(Backend as Service,BaaS)和 LLMOps
(大语言模型运维)理念。 Dify
平台旨在简化和加速生成式AI应用的创建和部署,为开发者提供了一个用户友好的界面和一系列强大的工具。
💡
Dify 一词源自 Define + Modify,意指定义并且持续的改进你的 AI 应用,它是为你而做的(Do it for you)。
为什么使用 Dify
?
Dify
就像是一套脚手架,它能带来的好处太多了:
- 降低开发门槛
- 可视化编排与管理
- 强大的RAG管道
- 企业级LLMOps
- 丰富的插件工具箱
- 活跃的社区支持
有了 Dify
,一个产品经理就能够完成以前需要需求、开发、测试、运维一起完成的工作。
Docker Compose 部署/启动
# 下载开源代码
git clone https://github.com/langgenius/dify.git
# 进入docker目录
cd dify/docker
# 复制配置示例
cp .env.example .env
# 检查 docker compose 版本
docker compose version
# 如果版本是 Docker Compose V2
docker compose up -d
# 如果版本是 Docker Compose V1
docker-compose up -d
# 查看容器启动状态
docker compose ps
如果启动成功,应该可以看到包括 3 个业务服务 api / worker / web
,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox
.env
文件里保存的是一些环境变量,在 docker-compose.yaml
配置文件里会引用到这些配置。
更新 Dify
cd dify/docker
docker compose down
git pull origin main
# 检查 .env.example 配置文件是否有更新,如果有则更新道 .env 文件中,再执行以下命令
docker compose pull
docker compose up -d
访问 Dify
主页面访问地址:
首先会进入到管理员账号的初始界面,访问地址:
创建了管理员账号就可以进入登录页面
进入主页面,在探索标签页可以看到 Dify
内置的多个实用工具。
工作室标签页展示的是用户创建的自定义的应用。
知识库标签页用来展示由用户上传的文件生成的知识库,知识库可以用来作为 AI 应用的上下文,辅助 AI 回答问题。
工具标签页展示的是用户 Dify
内置的工具和用户创建的自定义工具。这些工具可以看作是一个个小应用,在工作室里创建的 AI Agents
可以引用这些小工具,这样一来可以简化 AI Agents
的流程。
Dify
的应用类型主要分为四种:
- 聊天助手,基于
LLM
构建对话式交互的助手; - 文本生成,构建文本生成类型任务的助手,例如文本分类、文本摘要、翻译、撰写故事等;
- Agent,能够分解任务、推理、调用工具的对话式智能助手;
- 工作流,基于编排流程的方式定义更加灵活的
LLM
工作流。
配置技巧
给python沙箱引入包
如果想要在python执行结点中引入pymysql这样的三方工具包,则需要在 dify\docker\volumes\sandbox\dependencies
目录下的 python-requirements.txt
加入一行代码
PyMySQL==1.1.1
dify\docker\volumes\sandbox\dependencies
目录是在 docker-compose 里配置的启动容器的数据卷映射地址。
如此一来即可在python代码执行结点中加上如下代码
import pymysql
但是这样还是不能连接mysql数据库,因为docker-compose里配置的沙箱是一个封闭的容器,不能和非本地的数据库建立连接,所以还需要修改networks配置,一旦修改了就要注意会有安全问题,生产环境不推荐修改。最好的方式还是通过在python代码执行结点中调用数据库服务的接口,dify自带的http结点也支持接口调用。
迭代结点循环次数超过30次
在一个迭代结点中的迭代次数如果超过30次就会报错,次数是可以在dify配置里配置的。
修改dify\docker\.env
文件,将下面三个配置的数量改成适合你的数量。.env文件是从.env.example文件复制过来的。
CODE_MAX_STRING_ARRAY_LENGTH=100
CODE_MAX_OBJECT_ARRAY_LENGTH=100
CODE_MAX_NUMBER_ARRAY_LENGTH=1000
dify\docker\docker-compose.yaml
文件中也有这三个配置,但优先级没有.env文件的高
CODE_MAX_STRING_ARRAY_LENGTH: ${CODE_MAX_STRING_ARRAY_LENGTH:-100}
CODE_MAX_OBJECT_ARRAY_LENGTH: ${CODE_MAX_OBJECT_ARRAY_LENGTH:-100}
CODE_MAX_NUMBER_ARRAY_LENGTH: ${CODE_MAX_NUMBER_ARRAY_LENGTH:-1000}
更多推荐
所有评论(0)