本次捣鼓的是Dify。也是一个完整的知识库解决方案。本文档更新时,最新版本为0.15.3。

Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。

官方提供了完善的部署教程,依旧是推荐使用docker进行部署。

Docker Compose 部署 | Dify

1.拉取GitHub上的最新版本分支,git clone https://github.com/langgenius/dify.git --branch 0.15.3

2.首先进入/home/cyqsd/Project/dify/docker目录,cp .env.example .env

3.配置文件中的各种默认配置需要修改。

image-20250305104905911.webp

比如:默认端口、默认的数据库密码等等。虽然说有的业务是仅本地调用,还是能改则改。

NGINX_PORT=80EXPOSE_NGINX_PORT=80等配置,需要注意,是不是要直接将服务跑在80端口。

4.使用命令docker compose up -d,创建并启动,完成后如下所示:

8a3d2991c6ed   nginx:latest                                                        "sh -c 'cp /docker-e…"   34 hours ago   Up 25 hours             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp                                                    docker-nginx-1
ac45fb5faae2   langgenius/dify-api:0.15.3                                          "/bin/bash /entrypoi…"   34 hours ago   Up 34 hours             5001/tcp                                                                                                                    docker-worker-1
f4f6a97b5283   langgenius/dify-api:0.15.3                                          "/bin/bash /entrypoi…"   34 hours ago   Up 34 hours             5001/tcp                                                                                                                    docker-api-1
fb7a4e9002d2   postgres:15-alpine                                                  "docker-entrypoint.s…"   34 hours ago   Up 34 hours (healthy)   5432/tcp                                                                                                                    docker-db-1
5aa1367816b3   redis:6-alpine                                                      "docker-entrypoint.s…"   34 hours ago   Up 34 hours (healthy)   6379/tcp                                                                                                                    docker-redis-1
80466243f969   langgenius/dify-web:0.15.3                                          "/bin/sh ./entrypoin…"   34 hours ago   Up 34 hours             3000/tcp                                                                                                                    docker-web-1
f2133ce8b8b1   ubuntu/squid:latest                                                 "sh -c 'cp /docker-e…"   34 hours ago   Up 34 hours             3128/tcp                                                                                                                    docker-ssrf_proxy-1
15def8faf417   langgenius/dify-sandbox:0.2.10                                      "/main"                  34 hours ago   Up 34 hours (healthy)                                                                                                                               docker-sandbox-1
d7fe7de57b34   semitechnologies/weaviate:1.19.0                                    "/bin/weaviate --hos…"   34 hours ago   Up 34 hours                                                                                                                                         docker-weaviate-1

正常运行时,是:3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox,一共是9个容器。

如果运行出错,或者需要升级时删除容器,使用docker compose down命令,移除容器。再使用docker compose up -d重新创建启动。

如果启动后,部分业务无法访问,除了检查docker logs --tail=100 docker-nginx-1外。可以再检查/home/cyqsd/Project/dify/docker/nginx/conf.d目录下的default.conf,可替换为局域网IP供测试。

image-20250305105354089.webp

配置ollama

完成上面的步骤后,访问:http://你的IP地址/,登录后进行配置ollama,官方提供了教程:[接入 Ollama 部署的本地模型 | Dify](https://openwebui-doc-zh.pages.dev/getting-started/quick-start/starting-with-ollama/)。

因为是在docker上,此处的IP要么填局域网的IP,要么是http://host.docker.internal:1143411434是ollama安装时的端口,根据实际情况调整。ollama需要配置IP为OLLAMA_HOST "0.0.0.0"

image-20250304161409669.webp

模型名字,也按照拉取的名字填写。

此处测试的模型是:

  • 嵌入模型:bge-m3:latest
  • 推理模型:deepseek-r1:32b

image-20250304161354182.webp

除此之外,还支持很多的模型提供商。

image-20250304161346110.webp

文档中还提示到可能会遇到的错误:

image-20250305103840303.webp

配置好后,就可以进行对话测试了。

image-20250304161121567.webp

image-20250304161158223.webp

Dify提供了对话和知识库的访问API,这可比某些其他的国产知识库好多了。

image-20250304161217782.webp

Dify也支持图形化的智能体和工作流图形化编辑。

image-20250304161133145.webp

image-20250304161239195.webp

支持直接嵌入网页的组件,降低接入难度。

image-20250304161252534.webp

image-20250304161304945.webp

image-20250304161312552.webp

知识库的索引模式可配置。

image-20250304161320743.webp

很多外部供应商的工具。

image-20250304161331558.webp

本文的捣鼓到这里就结束了,简单使用下来,Dify确实做得很不错,各方面功能趋于完善,界面简洁,已经可以满足正常的使用需求了。

文章目录