Dify 第1课:定位、架构与本地部署
1. Dify 是什么一句话Dify 是一个开源的 LLM 应用开发平台让你用可视化方式编排 AI 工作流、搭建 RAG 知识库、管理 Agent。它在整个 LLM 应用生态中的位置底层模型层OpenAI / Claude / 本地模型 ↑ Dify 平台层工作流 / RAG / Agent / Prompt 管理 / 模型网关 ↑ 应用层ChatBot / 知识库问答 / 自动化 / API 接口面试考点 —— 选型对比维度DifyLangChainCozeFastGPT开源✅ 开源可私有部署✅ 开源框架❌ 商业平台✅ 开源可视化工作流✅ 拖拽式❌ 代码编排✅✅ 简易版上手门槛低可视化高需代码低中自定义深度中高低中企业级部署✅ Docker/K8s需自建不可需自建面试加分点架构理解实战代码能力强成品快中文优化好面试话术“Dify 和 LangChain 不冲突。LangChain 是开发框架适合需要细粒度控制的高级场景Dify 是应用平台定位是让产品和运营团队也能参与 LLM 应用搭建适合快速验证和交付的场景。实际工作中我倾向于结合使用——Dify 管流程和发布LangChain 管复杂逻辑的定制。”2. Dify 整体架构┌─────────────────────────────────────────┐ │ 用户层 (Web / API) │ ├─────────────────────────────────────────┤ │ 应用层对话应用 / 文本生成 / 工作流 │ ├──────────┬──────────────┬───────────────┤ │ 工作流引擎│ RAG Pipeline │ Agent 引擎 │ │ (DAG节点) │ (知识库检索) │ (工具推理) │ ├──────────┴──────────────┴───────────────┤ │ 模型网关 (多模型路由/降级) │ ├─────────────────────────────────────────┤ │ 数据层 (PostgreSQL Redis 向量库) │ └─────────────────────────────────────────┘核心模块工作流引擎DAG 式执行节点间变量传递RAG Pipeline文档加载 → 分段 → Embedding → 检索 → 重排序Agent 引擎ReAct / Function Calling 两种模式模型网关统一接口接入多模型支持 failover 降级API 层应用发布为 RESTful API供外部调用3. 动手本地部署 Dify这一部分边走边做。环境要求Docker Docker Compose需先装最低 2C4G 的机器可选Ollama 本地模型、或配置云 API Key部署方式二选一方式一Docker Compose推荐# 拉取官方仓库gitclone https://github.com/langgenius/dify.gitcddify/docker# 复制环境配置cp.env.example .env# 启动全部服务dockercompose up-d访问http://localhost:3000注册管理员账号即可。方式二源代码部署用于面试源码分析# API 后端cdapi pipinstall-rrequirements.txt flask run# Web 前端cdwebnpminstallnpmrun dev4. 部署架构解读面试重点Dify 的 Docker Compose 包含这些服务服务用途面试价值apiFlask 后端 API 服务处理请求入口架构入口workerCelery 工作进程执行异步工作流任务任务调度webNext.js 前端用户交互dbPostgreSQL存应用/知识库/用户数据持久化redis消息队列 缓存Worker 任务分发异步队列向量数据库Weaviate/Qdrant存 Embedding 向量检索基础nginx反向代理网关层面试考点哪些组件可以水平扩展Worker 和 API 可以水平扩展。Worker 通过 Redis 队列消费任务加机器即可提升吞吐量。但 PostgreSQL 和向量数据库会成为瓶颈需要进一步做读写分离和分片。5. 课后任务装 Docker如果还没装的话用 Docker Compose 跑起 Dify 本地实例注册进去把界面每个菜单点一遍感受功能布局思考Dify 为什么要用 Celery Worker 做异步任务而不是直接在 API 进程里处理下节课预告第2课工作流编排实战— 手搓 3 个真实场景工作流面试时拿来当项目讲。