团队里有两个产品经理总找我:“能不能帮我搭一个XX的AI机器人?“每次都要写代码、部署、调接口,烦不胜烦。后来发现了Dify,一个开源的LLM应用开发平台,让他们自己去拖拽搭建,我终于清静了;
Dify的核心卖点是可视化编排。不需要写代码,通过拖拽节点就能构建聊天机器人、知识库问答、自动化工作流。支持对接多种模型后端(OpenAI、Ollama、Anthropic等),也支持接入自己部署的本地模型。今天把部署和使用过程整理出来;
Docker Compose部署
Dify官方推荐Docker Compose,这也是最省心的方式:
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
.env里需要改几个关键配置。SECRET_KEY要改成一个随机字符串,用于会话加密;CONSOLE_URL改成你的实际访问地址;数据库密码如果需要的话也一并改掉。
docker compose up -d
Dify会启动一整套微服务:api(核心API)、worker(异步任务处理,文档向量化等)、web(前端界面)、db(PostgreSQL)、redis(缓存)、weaviate(向量数据库)、nginx(反向代理);
首次启动需要几分钟下载镜像。用docker compose ps确认所有服务都是running状态,然后访问http://localhost就能看到登录界面了。
接入本地Ollama模型
进入"设置→模型供应商”,选择Ollama,配置模型信息:
模型名称: deepseek-r1:7b
基础URL: http://host.docker.internal:11434
模型类型: 大语言模型
上下文长度: 4096
最大Token: 2048
这里有个坑:基础URL必须用host.docker.internal而不是localhost。因为Dify运行在Docker容器内,localhost指向的是容器自己,不是宿主机。Linux系统可能需要额外配置,在docker-compose.yml里给api服务加extra_hosts: ["host.docker.internal:host-gateway"]。
搭建知识库问答
创建知识库
“知识库→创建知识库”,上传你的文档。支持PDF、Word、Markdown、TXT、CSV等格式。
上传后Dify会自动执行文档解析→文本分块→向量化→索引存储的流水线。分块设置很关键:技术文档建议chunk_size=800、重叠=200;对话记录建议chunk_size=300、重叠=50。检索模式推荐"混合检索”,同时用向量检索和关键词检索,召回率比单一方式高不少。
创建应用
“工作室→创建应用”,选"聊天助手"类型。在编排界面里配置系统提示词:
你是公司内部的技术文档助手。请基于以下参考文档回答问题。
参考文档:
{{#context#}}
要求:
1. 严格基于参考文档回答,不编造
2. 文档中没有相关信息时,明确告知
3. 引用具体文档段落
上下文设置选刚才创建的知识库,Top-K设3-5,相似度阈值建议从0.5开始调。
搭建Agent应用
Dify的Agent功能让AI能自主调用工具。在"工作室→创建应用"选"Agent"类型;
内置工具包括搜索引擎、HTTP请求、代码执行器等。也可以添加自定义API工具——只需配置URL、参数、返回格式,Dify自动生成调用节点;
一个实用的Agent场景:内部运维助手,能查日志、查监控、重启服务。配置三个工具(日志查询API、监控查询API、运维命令API),Agent会根据用户问题自动选择调用哪个。
和其他方案的对比
Dify vs LangChain:Dify是产品,开箱即用;LangChain是框架,需要写代码。如果你的团队有开发能力且需求复杂,LangChain更灵活。如果需求相对标准且希望非技术人员也能用,Dify更合适;
Dify vs N8N:Dify专注AI应用,提示词编排和RAG管理做得好;N8N专注工作流自动化,服务集成能力强。两者可以配合使用。
写在最后
Dify真正解决的问题不是"能不能搭AI应用",而是"谁来搭"。让产品经理和运营人员自己动手搭原型验证想法,开发团队专注在真正需要编码的复杂场景上。这才是效率最大化的分工方式。