引言

八月份的我:我已经忘了四月份的我为啥要建这个文件了,可能是为了 AI Agent?总之,现在我要建的时候正好发现这文件已经存在了,所以就用起来好了。

Dify 是一款开源的大语言模型 (LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。[1-2]

我需要的功能是”直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排”, 现在开始。

效果展示

过程

1
2
3
4
5
6
7
8
9
10
11
12
# git config --global http.proxy <protocol>://<host>:<port>
## git clone
git clone https://github.com/langgenius/dify.git
## run
cd dify/docker
cp .env.example .env
docker-compose up -d
## check status
docker compose ps

## Reset
docker-compose down
1
# git config --global http.proxy http://127.0.0.1:7890

问题

端口冲突

.envdocker-compose.yaml分别更改冲突端口 (实际上官网只推荐了更改.env, 但是我实际发现更改不可用,不排除是未全部重置的原因)。

以 80 和 443 端口冲突为例,.env需要更改 4 处,包括:

  1. NGINX_PORT
  2. NGINX_SSL_PORT
  3. EXPOSE_NGINX_PORT
  4. EXPOSE_NGINX_SSL_PORT

docker-compose.yaml中字段同上。

需要注意的是,这样会导致分享处理的应用和 api 需要手动额外加上端口号,所以事实上选择 80 和 443 最为友好。但是可以使用转发解决。

不能登录

我的情况是无法注册和登录,会一直转圈圈

首先是在.env文件中INIT_PASSWORD=填上自己的文件夹,但是这不是关键。真正重要的是改好所有的冲突端口和重置weaviate.

我怀疑我第一次更改了端口但第二次使用了默认的5001端口导致了问题。

重置的命令是[3]:

sudo rm -rf ./volumes/app ./volumes/db ./volumes/redis ./volumes/weaviate

删除所有创建的不用的 docker 服务。

docker system prune -a

结论

试着用了几下示例应用,感觉非常不错,早就该用起来了~

2025 年 03 月 01 日:我觉得他非要让我用 80 和 443 还是太过分了…但是社区版好像不用安装也能用,我觉得是不是可以直接用在线的也行…

引用

  1. Dify.AI · The Innovation Engine for Generative AI Applications
  2. 欢迎使用 Dify | 中文 | Dify
  3. windows11 环境的 docker 部署方式,设置管理后跳转到登录页,输入登录信息又跳转到设置管理员页面,如此反复,不能登录 · Issue #4614 · langgenius/dify · GitHub