用途
Dify(Do It For You)是一个开源平台,用于构建智能体工作流与 LLM 应用,提供可视化界面设计复杂的 AI 流程,支持与数百种 LLM 模型及现有工具集成。适用于构建 LLM 应用、创建聊天机器人与对话式智能体、实现 RAG 系统、开发带工具调用的智能体、部署生产级 LLM 应用、管理知识库、集成 LLM 与现有工具数据源、监控优化应用性能。
核心能力
可视化工作流引擎:基于节点的界面构建 AI 工作流,拖拽组件快速开发,实时预览与测试,支持工作流迭代的版本控制。
模型支持:集成数百种 LLM(专有与开源),支持数十家提供商(OpenAI、Anthropic、Google、Hugging Face、本地模型等),可在 Prompt IDE 中并排测试对比模型,轻松切换模型提供商。
RAG 流水线:支持 PDF、PPT、TXT、Markdown 等文档处理,创建和管理多个知识源,可配置文本分块策略,支持向量搜索、关键词搜索、混合检索,支持多种嵌入模型提供商。
智能体能力:基于 ReAct 架构的函数调用,50+ 内置工具,可添加自定义 API 和函数工具,支持多步推理与复杂任务分解。
LLMOps:应用监控追踪使用与性能,分析仪表盘展示用户交互与指标,调试工具支持逐步执行检查,变量跟踪监控工作流数据流。
后端即服务:REST API 编程访问,可部署为独立 Web 应用,支持嵌入式组件集成到现有应用,自动生成 API 文档。
安装
前置要求:CPU ≥2 核,RAM ≥4 GB,已安装 Docker 与 Docker Compose。
方式一:Docker Compose(推荐)
git clone https://github.com/langgenius/dify.git
cd dify
cd docker
cp .env.example .env
vim .env
docker compose up -d
open http://localhost/install
方式二:Dify Cloud,在 https://cloud.dify.ai 注册,获得 200 次免费 GPT-4 调用,无需安装。
方式三:部署到云平台。Kubernetes:
helm repo add dify https://langgenius.github.io/dify-helm
helm install dify dify/dify
AWS 使用 AWS CDK:cdk deploy DifyStack。Azure/Google Cloud/阿里云参见官方文档部署指南。
主要环境变量包括 API_URL、WEB_URL、数据库(DB_USERNAME、DB_PASSWORD、DB_HOST、DB_PORT、DB_DATABASE)、Redis(REDIS_HOST、REDIS_PORT、REDIS_PASSWORD)、存储(STORAGE_TYPE、STORAGE_LOCAL_PATH)、向量数据库(VECTOR_STORE,可选 weaviate、pgvector、qdrant、milvus)、以及 LLM 提供商 API Key(OPENAI_API_KEY、ANTHROPIC_API_KEY)。
使用方式
创建应用:安装后访问 http://localhost/install 完成初始化向导并创建工作区。应用类型包括 Chatbot(带记忆的对话式 AI)、Text Generator(单轮文本生成)、Agent(带工具的任务型 AI)、Workflow(自定义多步流程)。
构建聊天机器人:点击 Create Application,选择 Chatbot,选择 LLM 模型,配置系统提示词,在 playground 测试,发布为 API 或 Web 应用。
添加知识库(RAG):在 Knowledge 区域创建知识库,上传文档(PDF、TXT、Markdown),配置分块设置(如 chunk size 500 tokens,overlap 50 tokens),选择嵌入模型并处理文档。然后在聊天机器人中添加 Knowledge Retrieval 节点,选择知识库,配置检索设置(Top K 3-5,score threshold 0.7,可启用 reranking)。
API 调用:Python 与 Node.js 示例通过 POST 请求调用 /v1/chat-messages 端点,携带 Authorization Bearer 头与 JSON 请求体(inputs、query、response_mode、conversation_id、user)。response_mode 支持 streaming 与 blocking。
工作流节点:包括 LLM 节点、Knowledge Retrieval、Tool 节点、Code 节点(运行自定义 Python/JavaScript)、Conditional 条件分支、Variable Aggregator、HTTP Request、Template Transform。
智能体内置工具:Google Search、Wikipedia、Weather APIs、Calculator、Web Scraper、数据库查询、文件操作、邮件发送。支持自定义工具定义(名称、描述、参数 schema)。
知识库管理:支持 PDF、docx、pptx、txt、md、HTML、CSV 格式。分块策略包括固定大小分块(fixed_size)、段落分块(paragraph)、语义分块(semantic)。检索配置支持向量搜索(vector)与混合检索(hybrid,可设向量权重、关键词权重、reranking)。
API 端点:/v1/chat-messages(聊天消息)、/v1/completion-messages(补全消息)、/v1/messages/{message_id}/feedbacks(反馈)。提供 Python SDK(dify_client)支持 chat、chat_stream 等方法。
适用场景与最佳实践
适用场景包括客户支持工作流(知识检索 → 条件分支 → LLM 生成 → 创建工单)、研究智能体(使用搜索、维基、爬虫工具并引用来源)、对话式客服机器人等。
开发最佳实践:从简单聊天机器人开始,逐步构建复杂工作流;增量测试每个节点后再连接;正确作用域和命名工作流变量;重大更改前保存版本;监控 token 使用与 API 成本。
生产实践:API Key 使用环境变量,实现速率限制,公共端点启用认证,定期安全更新;缓存频繁查询,优化知识库分块,长响应使用流式,实现连接池;监控响应延迟、token 使用、错误率、用户满意度、知识检索准确率;使用负载均衡、水平扩展 worker、分离数据库、异步任务队列。
知识库优化:上传前清理格式化文档,去重与删除过时内容,术语一致;从 500-token 分块开始,根据文档结构调整,使用重叠保留上下文;监控检索准确率,调整分数阈值,关键应用使用 reranking,A/B 测试检索配置。
限制与限制
文档已知的常见问题及排查方向包括:Docker 容器无法启动(检查日志、验证环境变量、确认端口、重置重启)、知识检索无结果(检查文档处理状态、验证嵌入模型、临时降低分数阈值、重建索引)、API 高延迟(启用缓存、使用流式、优化 LLM 设置、检查数据库性能)、模型 API 错误(验证 API Key、检查提供商状态、实现重试逻辑)。调试技巧:使用工作流调试器逐步执行、启用详细日志(LOG_LEVEL=DEBUG)、单独测试各组件、使用 docker stats 监控资源。
高级主题包括自定义模型提供商(继承 ModelProvider)、工作流优化(并行执行、条件缓存)、企业部署(高可用设置、Prometheus/Grafana/Loki/Alertmanager 监控栈)。
官方资源:文档 https://docs.dify.ai/,GitHub https://github.com/langgenius/dify,API 参考 https://docs.dify.ai/api-reference,云平台 https://cloud.dify.ai,Discord https://discord.gg/dify。部署指南包括 Kubernetes、AWS、Azure、Google Cloud 版本。相关工具包括 LangChain、LlamaIndex、Flowise、LangFlow。
关于具体收费、价格与商业条款,资料未提供,暂未说明。