项目上有个使用Dify的场景,大概是甲方已经部署安装好Dify了,且Dify中已经由甲方创建好了各种应用,现要求在他们的系统中实现通过点击不同的AI应用图标跳转到个人的AI应用中去,一开始接触的时候还没用过Dify,现在想来直接使用iframe中的地址做跳转就可以嘛,在甲方的系统中是可以配置跳转地址、用户信息等信息的,但是当时是不知道,而且甲方要求页面只保留对话框其他部分全部去掉,且要实现用户信息同步,那没办法了,对源码改造吧
Dify前端本地运行
在Dify官网上有相应的本地运行步骤 DIfy本地启动
启动 Web 服务
1.进入 web 目录
cd web
2.安装依赖
pnpm install --frozen-lockfile
准备环境变量配置文件
3.在当前目录中创建一个名为 .env.local 的文件,并从 .env.example 复制内容。根据您的需求修改这些环境变量的值:
# For production release, change this to PRODUCTION
NEXT_PUBLIC_DEPLOY_ENV=DEVELOPMENT
# The deployment edition, SELF_HOSTED or CLOUD
NEXT_PUBLIC_EDITION=SELF_HOSTED
# The base URL of console application, refers to the Console base URL of WEB service if console domain is
# different from api or web app domain.
# example: http://cloud.dify.ai/console/api
NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api
# The URL for Web APP, refers to the Web App base URL of WEB service if web app domain is different from
# console or api domain.
# example: http://udify.app/api
NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
# SENTRY
NEXT_PUBLIC_SENTRY_DSN=
NEXT_PUBLIC_SENTRY_ORG=
NEXT_PUBLIC_SENTRY_PROJECT=
4.构建 web 服务
pnpm build
5.启动 web 服务
pnpm start
预期输出:
▲ Next.js 15
- Local: http://localhost:3000
- Network: http://0.0.0.0:3000
✓ Starting...
✓ Ready in 73ms
需要注意在.env.example 中的后端地址需要改成自己部署的dify地址,如果是本地启动的后端那么就按照上面流程启动即可,我是直接使用的部署的服务器地址进行访问的,修改地址后启动,可以正常访问,
在页面上输入http://localhost:3000进行访问,访问可能稍微慢点,不确定原因,能正常访问即可
再二次开发之前说一下Dify后端是使用python开发的,前端是使用的rect的next.js开发的,本人前端,只对vue熟,对angular勉强会用