10分钟上手实战指南 | 开源LLM应用平台,释放大模型真实力
一、引言
你是否想将最新的AI大模型(如GPT-4、Claude、Llama)快速转化为解决实际问题的工具,却苦于不懂编程或厌倦了繁琐的接口调试?面对从创意到可部署应用之间的鸿沟,你是否需要一套既能开箱即用、又能深度定制的完整方案?
Dify 正是为你而生的答案。它远不止是一个工具,更是一个开源的企业级AI应用开发平台,完美融合了 “后端即服务”的便捷与 “LLMOps”的可运维性。无论你是开发者还是业务人员,都能通过可视化的方式,轻松定义并持续优化属于你自己的智能应用。
它为你集成了一切:从支持数百种模型的一站式编排,到生产级可用的RAG知识库引擎和智能体(Agent)框架。这意味着,你可以告别重复搭建技术栈的耗时劳动,将全部精力专注于业务逻辑与创新本身。Dify的名字正是由 “Define(定义)” 与 “Modify(优化)” 组合而成,完美诠释了其核心理念:轻松定义,持续演进。
一、Dify是什么?
Dify 是一个开源的大语言模型 (LLM) 应用开发平台。它结合了后端即服务 (Backend-as-a-Service) 和 LLMOps (LLMOps) 的概念,使开发人员能够快速构建生产级生成式 AI (Generative AI) 应用。即使是非技术人员也可以参与 AI 应用的定义和数据操作。
通过集成构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的提示词编排界面、高质量的检索增强生成 (RAG) 引擎以及灵活的 Agent (Agent) 框架,同时提供了一组易于使用的界面和 API,Dify 为开发人员节省了大量时间避免重复造轮子,让他们可以专注于创新和业务需求。
Dify 由 Define 和 Modify 两个词组合而成,寓意着用户可以定义并不断改进自己的 AI 应用。
你可以将 LangChain (LangChain) 之类的库想象成带有锤子、钉子等的工具库。相比之下,Dify 提供了一个更加接近生产环境、开箱即用的完整解决方案 —— 例如,可以将 Dify 想象成一个经过精心工程设计和软件测试的脚手架系统,可以帮助开发者快速搭建 AI 应用。
重要的是,Dify 是开源的,由专业的全职团队和社区共同创建。您可以基于任何模型自主部署类似于 Assistants API 和 GPT 的功能,通过灵活的安全措施保持对数据的完全控制,所有这些都在一个易于使用的界面上完成。
二、Dify能做什么?
- 工作流:Dify 提供了一个可视化的画布来构建和测试强大的 AI 工作流。此功能使用户能够利用 Dify 的全部功能,包括模型集成和提示词设计。
- 全面的模型支持:该平台支持与数百个专有和开源 LLM 无缝集成,包括 GPT、Mistral、Llama3 以及任何与 OpenAI API 兼容的模型等热门选项。这种广泛支持的模型确保了开发人员的灵活性和选择性。
- 提示词 IDE:Dify 包括一个直观的提示词 IDE,允许用户制作提示词、比较模型性能,并使用文本转语音等附加功能增强应用。
- RAG 管道:Dify 的检索增强生成 (RAG) 功能涵盖了从文档提取到检索的所有内容。它包括对从各种文档格式(如 PDF 和 PPT)中提取文本的开箱即用支持。
- AI 智能体功能:用户可以使用 LLM 函数调用或 ReAct (ReAct) 定义 AI 智能体,并集成预构建或自定义工具。Dify 为 AI 智能体提供了 50 多种内置工具,包括 Google 搜索、DALL·E (DALL·E)、Stable Diffusion (Stable Diffusion) 和 WolframAlpha (WolframAlpha)。
- LLMOps:该平台包括可观察性功能,用于监控和分析应用程序日志和性能随时间的变化。这允许根据真实数据和注释不断改进提示词、数据集和模型。
- 后端即服务:Dify 为其所有功能提供相应的 API,可轻松集成到现有业务逻辑中。
- 云服务:Dify 提供零设置的云服务,包括自托管版本的所有功能。沙盒计划提供 200 次免费的 GPT-4 调用以供试验。
- 自托管:Dify 的社区版本可以在任何环境中快速设置,并提供详细的文档以进行更深入的定制。
- 企业解决方案:Dify 提供以企业为中心的功能,例如单点登录 (SSO) 和访问控制。它还在 AWS Marketplace (AWS 市场) 上提供 Dify Premium 选项,其中包括应用程序的自定义品牌和徽标。
三、如何使用Dify
3.1、云Dify
网址:https://cloud.dify.ai/signin
Dify 为每个人提供云服务,因此您无需自行部署即可使用 Dify 的全部功能。
从免费计划开始,其中包括 200 次 OpenAI 调用的免费试用。要使用云版本的免费计划,您需要一个 GitHub 或 Google 帐户和一个 OpenAI API 密钥。以下是开始使用的方法:
- 注册 Dify Cloud 并创建一个新的 Workspace 或加入现有的 Workspace。
- 配置您的模型提供者或使用托管模型提供者。
- 您现在就可以创建一个应用程序了!
有三种登录选项:GitHub 、Google和邮箱验证码,您可以选择任意一种登录。
这里,疯哥使用邮件验证码方式登录。

登录后,您将看到 Studio 界面。您可以跳过下一部分,直接进入“模型 (Models)” 章节。


3.2、使用Dify免费版(社区版)
如果想在本地运行 Dify,您可以选择部署 Dify 社区版本,它是开源版本。您可以通过 Docker Compose (Docker Compose) 或本地源代码进行部署。本文将演示使用 Docker Compose 在 Windows 上本地部署 Dify 的更便捷方法。
首先,安装并运行 Docker Desktop 并启用 WSL 2 (Windows Subsystem for Linux 2)。您可以从以下链接下载它;详细的安装过程不在本文中介绍:
https://www.docker.com/products/docker-desktop/
在要存储 Dify 的目录中打开命令提示符,然后输入:
git clone https://github.com/langgenius/dify.git
您将看到以下输出:
D:\Workspace\Dify>git clone https://github.com/langgenius/dify.git
Cloning into 'dify'...
remote: Enumerating objects: 66122, done.
remote: Counting objects: 100% (10553/10553), done.
remote: Compressing objects: 100% (1540/1540), done.
remote: Total 66122 (delta 9611), reused 9196 (delta 9008), pack-reused 55569
Receiving objects: 100% (66122/66122), 38.65 MiB | 11.63 MiB/s, done.
Resolving deltas: 100% (47189/47189), done.
Updating files: 100% (5109/5109), done.
如果尚未安装 Git,则可以从 Dify 的 GitHub 仓库下载整个项目并将其解压缩,然后再继续执行以下步骤。但是,此方法对于以后的更新不太方便。
导航到 Dify 源代码的 docker 目录并执行一键启动的命令:
# 导航到 docker 目录
cd dify/docker
# 复制并重命名配置文件
cp .env.example .env
# 如果您使用的是 Windows cmd,请使用 copy 命令而不是 cp
copy .env.example .env
# 启动 docker compose
docker compose up -d
部署输出:
D:\Workspace\Dify\dify\docker>docker compose up -d
[+] Running 75/9
✔ weaviate Pulled 27.0s
✔ web Pulled 61.1s
✔ ssrf_proxy Pulled 26.9s
✔ api Pulled 51.3s
✔ redis Pulled 27.3s
✔ sandbox Pulled 40.4s
✔ db Pulled 30.1s
✔ nginx Pulled 27.1s
✔ worker Pulled 51.3s
[+] Running 11/11
✔ Network docker_default Created 0.0s
✔ Network docker_ssrf_proxy_network Created 0.1s
✔ Container docker-sandbox-1 Started 2.1s
✔ Container docker-weaviate-1 Started 2.7s
✔ Container docker-db-1 Started 2.7s
✔ Container docker-ssrf_proxy-1 Started 2.7s
✔ Container docker-redis-1 Started 2.7s
✔ Container docker-web-1 Started 1.6s
✔ Container docker-api-1 Started 2.9s
✔ Container docker-worker-1 Started 2.9s
✔ Container docker-nginx-1 Started
最后,检查所有容器是否都正确运行:
docker compose ps
运行输出:
D:\Workspace\Dify\dify\docker>docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docker-api-1 langgenius/dify-api:0.6.15 "/bin/bash /entrypoi…" api 3 minutes ago Up 3 minutes 5001/tcp
docker-db-1 postgres:15-alpine "docker-entrypoint.s…" db 3 minutes ago Up 3 minutes (healthy) 5432/tcp
docker-nginx-1 nginx:latest "sh -c 'cp /docker-e…" nginx 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp
docker-redis-1 redis:6-alpine "docker-entrypoint.s…" redis 3 minutes ago Up 3 minutes (healthy) 6379/tcp
docker-sandbox-1 langgenius/dify-sandbox:0.2.1 "/main" sandbox 3 minutes ago Up 3 minutes
docker-ssrf_proxy-1 ubuntu/squid:latest "sh -c 'cp /docker-e…" ssrf_proxy 3 minutes ago Up 3 minutes 3128/tcp
docker-weaviate-1 semitechnologies/weaviate:1.19.0 "/bin/weaviate --hos…" weaviate 3 minutes ago Up 3 minutes
docker-web-1 langgenius/dify-web:0.6.15 "/bin/sh ./entrypoin…" web 3 minutes ago Up 3 minutes 3000/tcp
docker-worker-1 langgenius/dify-api:0.6.15 "/bin/bash /entrypoi…" worker 3 minutes ago Up 3 minutes 5001/tcp
输出应包括 3 个业务服务:api、worker 和 web,以及 6 个基础组件:weaviate、db、redis、nginx、ssrf_proxy 和 sandbox。
然后,打开浏览器并转到 http://localhost 以访问 Dify。输入必要的信息以完成用户注册。

填写完注册信息后,点击「设置」按钮,进入登录页面。输入已注册的账号信息并登录:

您已成功登录,Dify 本地部署准备就绪。
更新 Dify 本地版本时,请进入 Dify 源码的 docker 目录,依次执行以下命令:
cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d
同时,请同步您的环境变量配置:
- 如果 .env.example 文件有更新,请同步更新您本地的 .env 文件。
- 检查 .env 文件中的所有配置项,确保它们与您的实际运行环境相匹配。您可能需要将 .env.example 文件中的新变量和更新后的值添加到 .env 文件中。
四、模型
4.1、模型类型
Dify 将模型分为 4 种类型,用于不同用途:
- 系统推理模型 (System Inference Models) :用于聊天、名称生成、建议后续问题等任务。提供者包括 OpenAI、Azure OpenAI Service、Anthropic、Hugging Face Hub、Replicate、Xinference、OpenLLM、讯飞星火、文心一言、通义、Minimax、智谱 (ChatGLM) Ollama 和 LocalAI。
- 嵌入模型 (Embedding Models):用于在知识库中嵌入分段文档并处理用户查询。提供者包括 OpenAI、智谱 (ChatGLM) 和 Jina AI(Jina Embeddings 2)。
- 重排序模型 (Rerank Models):增强大语言模型的搜索能力。提供者:Cohere。
- 语音转文本模型 (Speech-to-Text Models):在对话应用程序中将语音转换为文本。提供者:OpenAI。
4.2、选择和配置模型
首次登录 Dify Studio 页面后,您需要在「设置」→ 「模型供应商」部分添加和配置所需的模型。点击右上角的头像按钮,选择「设置」:

点击左侧菜单的「模型供应商」,然后您将在右上角看到「系统模型设置」。在「系统模型设置」中,您可以设置系统的默认模型。


4.3、预定义模型集成
Dify 支持 OpenAI 的 GPT 系列和 Anthropic 的 Claude 系列等主要模型提供商。每个模型的功能和参数各不相同,请选择适合您应用程序需求的模型提供商。您需要在使用模型提供商的 API 密钥之前,从模型提供商的官方网站获取。
以下以 OpenAI 的 API 密钥为例进行说明。
- 使用 API 密钥可以使用更多模型。
- 如果您需要集成开源模型,Dify 也支持。例如,您可以通过 Hugging Face 或 Ollama 集成开源模型。
- 您也可以跳过设置,使用默认的最新 gpt-4o-mini 模型作为系统推理模型,但您将只有 200 个单词的 Token 可用,用于试用。
配置 OpenAI API 密钥:
- 点击 OpenAI 部分右侧的「设置」按钮。
- 输入 API 密钥。
- 点击「保存」。


API 密钥配置正确后,「设置」按钮上方的指示灯将变为绿色。点击下方的「添加模型」按钮,所有可用的模型都将显示并可供访问。

您可以在“添加模型”中输入所需的模型名称,例如 gpt-4 ,按需选择自己需要的模型类型,例如 LLM

重排序模型为空且没有可选项的原因:
- 目前只有 Cohere 和 JinaAI 模型支持重排序。
- 如果需要,您可以通过配置它们各自的 API 密钥来启用它们。
什么是重排序 (Rerank)?
混合检索可以结合不同检索技术的优势,以获得更好的召回率结果。不同检索模式下的查询结果在提供给大型模型之前,需要进行合并和归一化处理(将数据转换为统一的标准范围或分布,以便更好地进行比较、分析和处理)。
此时,我们需要引入一个评分系统:重排序模型 (Rerank Model)。
重排序模型计算候选文档列表与用户查询之间的语义匹配度,根据语义匹配度对结果进行重新排序,以提高语义排序结果。其原理是计算用户查询与每个给定候选文档的相关性得分,然后返回按相关性从高到低排序的文档列表。常见的重排序模型包括 Cohere rerank、bge-reranker 等。
重排序模型的优势:
提供了一种简单、低复杂度的方法来改进搜索结果。
使用户能够将语义相关性融入到现有的搜索系统中。
不需要对基础设施进行重大修改。
4.4、自定义模型集成
Dify 可以与本地模型或托管模型集成,例如 Ollama、LocalAI、Hugging Face、Replicate、Xinference 和 OpenLLM。
以下演示如何通过 Ollama 将本地部署的 Dify Docker 实例连接到本地运行的 Llama 3.1 实例,从而在 Dify 中使用开源本地模型。
注意事项:
- 如果您想使用 Dify 的官方网络版本连接到您的本地 Ollama 实例,您需要使用 Ngrok 或 Frpc 等工具将您的本地 Ollama 端口暴露到公共互联网。
- 或者,如果您的网络具有公共 IP,您可以使用路由器端口映射将 Ollama 的服务放在公共互联网上。
- 由于网络配置的复杂性和可变性,本文不会深入探讨网络相关问题。
步骤:
1、在 Ollama 和模型准备好后,退出 Ollama。
2、将 OLLAMA_HOST 环境变量添加到您的系统中,并将其值设置为 0.0.0.0。这是为了将 Ollama 的服务暴露给 Dify,以便后续调用。
3、运行一个 Llama 3.1 实例:
ollama run llama3.1
成功启动后,Ollama 会在本地端口 11434 上启动一个 API 服务,可以通过 http://localhost:11434 访问。
4、检查您机器的内部 IP 地址。打开命令提示符并输入 ipconfig,找到 IPv4 地址并复制它。
C:\Users\dream>ipconfig
Windows IP ConfigurationEthernet adapter Ethernet 5: Connection-specific DNS Suffix . : uds.anu.edu.au
Link-local IPv6 Address . . . . . : fe80::5b74:3153:67b9:412c%27
IPv4 Address. . . . . . . . . . . : 122.36.220.100
Subnet Mask . . . . . . . . . . . : 255.255.252.0
Default Gateway . . . . . . . . . : 130.56.120.1Wireless LAN adapter Wi-Fi: Connection-specific DNS Suffix . : anu.edu.au
Link-local IPv6 Address . . . . . : fe80::5bd:7139:58d7:69eb%15
IPv4 Address. . . . . . . . . . . : 10.89.12.110
Subnet Mask . . . . . . . . . . . : 255.255.224.0
Default Gateway . . . . . . . . . : 10.89.12.1
5、运行本地部署的 Dify Docker。
6、登录 Dify 后,导航到「设置 > 模型供应商 > Ollama」,并输入以下参数:


图中所示参数的具体含义和填写方法如下:
- 模型名称:llama3.1
- 基础 URL:http://<your-ollama-endpoint-domain>:11434,其中 URL 由 http:// 后跟前面获取的本地 IP 地址和端口号组成。
- 请注意,此处使用 127.0.0.1 将不起作用;您需要使用本地 IP 地址。
- 如果使用 Docker 部署 Dify,请考虑使用本地网络 IP 地址,例如 http://192.168.1.100:11434 或 Docker 主机 IP 地址,例如 http://172.17.0.1:11434。
- 如果 Ollama 在 Docker Desktop 中运行,则 http://host.docker.internal:11434 可能是正确的地址。
- 如果使用本地源码部署方式部署 Dify,可以尝试使用 http://localhost:11434。
- 模型类型:对话
- 模型上下文长度:4096(模型的最大上下文长度。如果不确定,请使用默认值 4096。)
- 最大 Token 上限:4096(模型返回的最大 Token 数。如果没有针对模型的特定要求,这可以与模型上下文长度一致。)
- 是否支持Vision:否(如果模型支持图像理解(多模态),例如 llava,请选中此选项。)
7、点击「保存」以保存配置。
嵌入模型的集成方法与大型语言模型类似,只需将模型类型更改为“文本嵌入”即可。
保存配置后,您将能够看到添加的模型。

至此,Dify 已经准备好与 Ollama 协同工作了。您可以继续阅读 Dify 的实践部分,以验证本部分所做工作的有效性。此外,您还可以创建自己的 RAG(检索增强生成)知识库聊天机器人。
解决 Docker 部署 Dify 和 Ollama 时的错误:
如果您使用 Docker 部署 Dify 和 Ollama,您可能会遇到以下错误:
httpconnectionpool(host=127.0.0.1, port=11434): max retries exceeded with url:/cpi/chat (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>: fail to establish a new connection:[Errno 111] Connection refused'))
httpconnectionpool(host=localhost, port=11434): max retries exceeded with url:/cpi/chat (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>: fail to establish a new connection:[Errno 111] Connection refused'))
出现此错误的原因是从 Docker 容器无法访问 Ollama 服务。localhost 通常指的是容器本身,而不是主机或其他容器。要解决此问题,您需要将 Ollama 服务暴露给网络。
以下是如何在 macOS 和 Linux 上为 Ollama 设置环境变量:
如果 Ollama 作为 macOS 应用程序运行:
1、对于每个环境变量,调用 launchctl setenv。
launchctl setenv OLLAMA_HOST "0.0.0.0"
2、重新启动 Ollama 应用程序。
3、如果上述步骤无效,可以尝试以下方法:将服务中的 localhost 替换为 host.docker.internal。
http://host.docker.internal:11434
如果 Ollama 作为 systemd 服务运行:
1、通过调用 systemctl edit ollama.service 来编辑 systemd 服务。
2、对于每个环境变量,在 [Service] 部分下添加一行 Environment:
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
3、保存并退出。
4、重新加载 systemd 并重新启动 Ollama:
systemctl daemon-reload
systemctl restart ollama
五、Dify应用编排
在 Dify 中,“应用”指的是基于大型语言模型 (LLM)(例如 GPT)构建的,可以解决实际问题的应用。通过创建应用,您可以将 AI 技术应用于满足特定需求。简而言之,Dify 应用提供以下功能:
- 用户友好的 API,后端或前端应用均可直接调用,并通过 Token 进行身份验证。
- 开箱即用、美观且托管的 WebApp,您可以使用 WebApp 模板对其进行二次开发。
- 易于使用的界面,包括提示工程、上下文管理、日志分析和标注等功能。
您可以选择以上全部功能或其中一部分来支持 AI 应用开发。
六、Dify创建应用
您可以通过以下三种方式在 Dify 工作台中创建应用:
- 基于应用模板创建(推荐初学者使用)。
- 创建空白应用。
- 通过 DSL 文件创建应用(本地/在线)。
6.1、从模板创建应用
首次使用 Dify 时,您可能不熟悉如何创建应用。为了帮助新用户快速了解如何在 Dify 上构建应用,Dify 团队的提示工程师已经为多种场景创建了高质量的应用模板。
在导航菜单中选择“工作室”,然后在应用列表中选择「从应用模板创建」。

选择任意模板并将其添加到您的工作区。

以“文件翻译”模板为例:
1、创建工作流后,您可以开始编辑。
2、从 LLM 2 的说明中可以看出,这是一个专业的中文翻译机器人。它通过检测专业术语、直译、审校和二次自由翻译等步骤来提高专业文章的翻译精度。

3、点击「发布」和「运行应用」,您可以测试将一篇包含许多技术术语的论文摘要作为翻译材料进行翻译。右侧窗口将显示工作流和翻译结果,效果非常好。