Dify: 大模型(LLM) 应用开发平台

Dify: 大模型(LLM) 应用开发平台

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

Dify: 大模型(LLM) 应用开发平台

.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: 大模型(LLM) 应用开发平台

访问 Dify

主页面访问地址:

http://localhost

第一会进入到管理员账号的初始界面,访问地址:

http://localhost/install

Dify: 大模型(LLM) 应用开发平台

创建了管理员账号就可以进入登录页面

Dify: 大模型(LLM) 应用开发平台

进入主页面,在探索标签页可以看到 Dify 内置的多个实用工具。

Dify: 大模型(LLM) 应用开发平台

工作室标签页展示的是用户创建的自定义的应用。

Dify: 大模型(LLM) 应用开发平台

知识库标签页用来展示由用户上传的文件生成的知识库,知识库可以用来作为 AI 应用的上下文,辅助 AI 回答问题。

工具标签页展示的是用户 Dify 内置的工具和用户创建的自定义工具。这些工具可以看作是一个个小应用,在工作室里创建的 AI Agents 可以引用这些小工具,这样一来可以简化 AI Agents 的流程。

Dify: 大模型(LLM) 应用开发平台

Dify 的应用类型主要分为四种:

  • 聊天助手,基于 LLM 构建对话式交互的助手;
  • 文本生成,构建文本生成类型任务的助手,例如文本分类、文本摘要、翻译、撰写故事等;
  • Agent,能够分解任务、推理、调用工具的对话式智能助手;
  • 工作流,基于编排流程的方式定义更加灵活的 LLM 工作流。

配置技巧

给python沙箱引入包

如果想要在python执行结点中引入pymysql这样的三方工具包,则需要在 difydockervolumessandboxdependencies 目录下的 python-requirements.txt 加入一行代码

PyMySQL==1.1.1

difydockervolumessandboxdependencies 目录是在 docker-compose 里配置的启动容器的数据卷映射地址。

如此一来即可在python代码执行结点中加上如下代码

import pymysql

但是这样还是不能连接mysql数据库,由于docker-compose里配置的沙箱是一个封闭的容器,不能和非本地的数据库建立连接,所以还需要修改networks配置,一旦修改了就要注意会有安全问题,生产环境不推荐修改。最好的方式还是通过在python代码执行结点中调用数据库服务的接口,dify自带的http结点也支持接口调用。

Dify: 大模型(LLM) 应用开发平台

Dify: 大模型(LLM) 应用开发平台

迭代结点循环次数超过30次

在一个迭代结点中的迭代次数如果超过30次就会报错,次数是可以在dify配置里配置的。

修改difydocker.env文件,将下面三个配置的数量改成适合你的数量。.env文件是从.env.example文件复制过来的。

CODE_MAX_STRING_ARRAY_LENGTH=100
CODE_MAX_OBJECT_ARRAY_LENGTH=100
CODE_MAX_NUMBER_ARRAY_LENGTH=1000

difydockerdocker-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}

参考

官方中文文档:
https://docs.dify.ai/zh-hans

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
缘如羽的头像 - 鹿快
评论 共3条

请登录后发表评论