后续会深度研究下dify,智能体的应用要更广泛一些。我也会根据自己的需求,在dify中中的功能进行增强。
项目结构
- api - 后端API服务
- web - 前端Web应用
- sdks - SDK库
- docker - Docker相关配置
- dev - 开发相关工具,主要是同步脚本等
- images - 项目说明的的图片资源
我先让codeBuddy帮我分析下这个工程,看下如何运行。
中间件依赖
dify的启动,一来一堆中间件
api项目
uv环境安装
从1.3开始dify的python环境使用uv管理了。
准备配置文件
替换SECRET_KEY
生成随机密钥并替换 .env 文件中的 SECRET_KEY 值
安装依赖
设置python interpreter
- 打开setting
- 选择dify的项目的Python Interpreter
-
2
通过Add Interpreter
的Add Local Interpreter
-
3
选择已经存在的 -
4
选择路径 - 最后点击ok
执行数据库迁移
执行数据库迁移到最新版本:
启动api服务
命令解释
--directory
指定工作目录为api
启动worker服务
需要注意的是,在.env中LOG_TZ默认时区为 UTC,改成中国地区LOG_TZ=Asia/Shanghai
前端项目
dify要求前端的环境是:Node.js v22 + Pnpm v10
看了下我本地的,版本比官方的要低
直接执行报:
先升级下,以前用mac的时候,很简单,直接执行下面的命令即可。
在win上没法执行,直接从官网下载一个覆盖安装。 https://nodejs.org/zh-cn/download
https://nodejs.org/en/download
pnpm安装升级到是简单。
建议大家把缓存目录都改下,要不然c盘越来越大。
安装依赖
准备配置
在web目录下,直接从.env.example复制出一个.env
文件,正常不用改
构建web服务
直接执行pnpm build
即可
启动web服务
在linux或mac中,启动直接执行pnpm start
即可,在win中报错
win11上无法执行,我直接让codebuddy给我创建了一个兼容模式
关键点:
- 使用
fs-extra
屏蔽操作系统之间的差异性,添加依赖
- 新增start.js
- codebuddy修改了启动脚本
最后启动成功。
如果启动失败,把node_modules删除,然后重新走一遍即可。
后记
- 修改的脚本在win11上验证通过,还未在mac和linux上验证,等验证了,我提交一个pr
- dify官方的文档还是比较健全的,照着操作,遇到的问题不太多
- 整体上dify的代码清晰度,对于javaer来说,还是比较友好的