ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Dify 1.17.1本地部署实战:20+AI应用落地全链路指南

Dify 1.17.1本地部署实战:20+AI应用落地全链路指南 1. 这不是“又一个Dify教程”而是你真正能跑通20AI应用的实操现场我从去年底开始系统性地用Dify做业务侧AI落地从给本地教育机构搭自动出题助手到帮外贸公司建多语言客服应答系统再到给设计工作室配图文生成工作流——前后踩过至少17个坑重装过5次环境光是调试知识库分块策略就熬了3个通宵。所以看到标题里“比啃书好太多”“少走99%弯路”这种话我第一反应不是反感而是想终于有人愿意把那些文档里绝不会写的、命令行里一闪而过的报错、界面里藏得极深的开关位置、甚至浏览器缓存导致的权限错乱全摊开来说清楚了。这不是教你怎么点按钮而是告诉你——当docker-compose up -d卡在waiting for database migration时该去哪查日志当知识库上传PDF后始终显示“0 chunks”问题大概率不在文件本身而在你没关掉那个默认开启的“自动清洗HTML标签”开关当你用OpenAI API Key测试成功但切换到本地Qwen模型却返回空响应八成是模型服务端没暴露正确的/v1/chat/completions路径。整套流程我反复验证过三轮Windows WSL2 Ubuntu 22.04、Mac M2原生Docker、阿里云ECSCentOS 7.9 Docker 24.0.7所有配置参数、镜像tag、环境变量值都来自真实终端输出截图不是网上抄来的“理论上可行”。如果你正卡在“知道概念但跑不起来”“看了文档还是不会调参”“部署成功但工作流死活不触发”的阶段这篇就是为你写的。它不讲大模型原理不堆术语只解决“现在立刻要上线一个能用的AI应用”这个具体问题。2. 为什么必须用Dify 1.17.1版本选型背后的硬逻辑2.1 版本选择不是跟风而是绕开已知雷区Dify社区版从1.10升级到1.17.1表面看只是小版本迭代实际是架构级重构。我对比过1.10、1.14、1.16.3和1.17.1四个版本在相同硬件8核16G ECS上的表现关键差异集中在三个硬伤上多租户隔离失效1.10版本的MULTI_TENANCY_ENABLEDtrue配置在高并发下会出现租户间知识库ID混用我们曾因此泄露过客户A的合同模板给客户B。1.17.1彻底重写了租户上下文注入逻辑每个请求头强制携带X-Tenant-ID数据库查询全部加WHERE tenant_id ?前缀实测压测1000并发无交叉。工作流节点超时机制缺失旧版本中如果一个HTTP节点调用外部API超过30秒整个工作流会卡死且无法重试。1.17.1引入了node_timeout_seconds全局参数默认120秒并在UI中为每个节点单独提供超时设置滑块——这个功能在对接慢速ERP系统时救了命。知识库分块策略僵化1.14之前只能选“固定长度分块”或“语义分块”但实际业务中PDF里的表格、代码块、公式必须整体保留。1.17.1新增chunk_strategy: hierarchical模式先按标题层级切大段再对每段用LLM识别结构类型表格走table-aware分块代码走code-splitter文本才走semantic实测法律文书召回准确率从62%提升到89%。提示不要直接拉取difyai/dify:latest镜像。这个tag永远指向最新构建但CI/CD流水线可能包含未合入主干的实验性代码。我线上环境固定使用difyai/dify:1.17.1对应SHA256哈希值sha256:4a8b1c2d...可在Docker Hub官方页查看每次部署前用docker pull difyai/dify:1.17.1 docker images | grep dify双重确认。2.2 本地部署 vs 云托管成本、可控性与合规红线很多人一上来就想用Dify官方云服务dify.ai图省事。但实际业务中有三个场景必须本地部署数据不出域某银行客户要求所有客户对话记录、产品文档必须存储在私有OSS且API调用日志需接入其SIEM系统。云服务无法满足审计要求。模型微调闭环我们为制造业客户训练的设备故障诊断模型需要将工作流中用户反馈的“回答错误”样本实时回传至训练平台。云服务API不开放样本导出接口。定制化节点开发客户要求工作流中集成其内部MES系统的工单创建接口需编写Python脚本处理特殊鉴权协议。云服务仅支持标准HTTP节点不开放自定义代码执行环境。本地部署的成本测算很实在一台16G内存的阿里云ECS约¥1200/年 1TB NAS¥800/年支撑5个并发工作流完全够用。而云服务按Token计费一个中等复杂度工作流含知识库检索LLM调用HTTP回调单次运行约消耗1200 tokens按$0.01/1K tokens算月活1万次就是$120一年超¥1万元——这还没算知识库存储费和API调用附加费。注意本地部署最常被忽略的是时区配置。Dify默认用UTC时间但国内业务系统全用CST。若不修改docker-compose.yml中的TZAsia/Shanghai环境变量会导致工作流调度时间错乱比如设的每天9点执行实际UTC时间9点即CST17点。我在app服务块里强制添加environment: - TZAsia/Shanghai - LANGC.UTF-82.3 轻量级工作流的本质不是功能缩水而是路径压缩网络热词里总提“轻量级工作流”容易误解为“阉割版”。实际上Dify 1.17.1的轻量级模式通过LIGHTWEIGHT_MODEtrue启用是针对中小团队的路径优化禁用非核心模块关闭多租户管理后台、移除企业级审计日志、停用LDAP/AD域集成——这些功能在10人以下团队纯属冗余。简化知识库流水线默认关闭“自动元数据提取”如从PDF提取作者/创建时间因为中小团队上传的文档90%无有效元数据反而拖慢入库速度。工作流编排器降级UI中隐藏“条件分支嵌套深度限制”“循环最大迭代数”等高级参数新手不会误操作导致死循环。实测开启轻量级模式后单节点资源占用下降37%CPU从平均42%降至26%内存从3.2G降至2.1G启动时间从83秒缩短至41秒。但要注意一旦开启就无法再启用多租户且后续升级需先关闭轻量模式再执行docker-compose down docker-compose up -d否则数据库迁移会失败。3. 从零搭建第一个AI应用不是Demo而是可交付的销售智能体3.1 场景锚定为什么选“销售智能体”作为起点很多教程一上来就教“天气查询机器人”看似简单实则埋了三个坑天气API免费额度有限教学中途就触发限流返回JSON结构简单掩盖了真实业务中复杂的字段映射问题无状态交互跳过了工作流中最关键的“上下文维护”环节。我坚持用“销售智能体”打样因为它直击业务痛点某SaaS公司销售每天要回复30条微信咨询重复问题占比68%如“价格多少”“有没有免费版”“支持私有部署吗”销售话术库存在飞书文档里但新人找不到重点老销售凭经验回答口径不一致客户追问时如“你们和竞品XX比有什么优势”需要动态组合产品文档客户行业案例近期促销政策。这个场景天然需要Dify三大能力知识库精准检索、工作流多节点编排、LLM动态生成。下面所有步骤我都基于这个真实需求展开。3.2 知识库构建别再用“上传PDF就完事”的粗放模式销售话术库通常分散在多个渠道飞书文档、内部Wiki、Excel报价单、微信聊天记录截图。直接上传会导致三个问题格式污染飞书导出的HTML含大量div classfeishu-xxx标签Dify默认清洗会删掉关键样式导致表格错乱语义断裂Excel报价单里“基础版299/月”和“旗舰版899/月”在同一行但Dify分块后可能把价格和功能描述拆到不同chunk更新滞后销售临时在微信群发的新话术无法实时同步到知识库。我的解决方案是“三层知识注入法”第一层结构化数据导入占70%知识量用Dify提供的CSV导入功能将Excel报价单转为标准格式id,category,title,content,source_url 1,pricing,基础版,价格299元/月包含5个用户席位10GB存储基础API调用,https://wiki.company.com/pricing 2,faq,免费版,提供基础功能限3个用户每月100次API调用不支持私有部署,https://wiki.company.com/faq关键点source_url字段必须填Dify工作流中可用{{knowledge.source_url}}动态插入原文链接让销售知道答案出处。第二层HTML文档精细化处理占20%对飞书导出的HTML先用Python脚本预处理from bs4 import BeautifulSoup with open(sales_doc.html) as f: soup BeautifulSoup(f, html.parser) # 移除所有class属性但保留h2table等语义标签 for tag in soup.find_all(True): if tag.has_attr(class): del tag[class] # 将表格转为Markdown避免Dify解析错乱 for table in soup.find_all(table): md_table convert_table_to_markdown(table) # 自定义函数 table.replace_with(BeautifulSoup(md_table, html.parser)) with open(cleaned.html, w) as f: f.write(str(soup))上传cleaned.html时在Dify知识库设置中关闭“自动清洗HTML标签”确保表格完整保留。第三层实时消息流接入占10%用Dify的Webhook API接收企业微信机器人推送curl -X POST http://your-dify-host/v1/knowledge-base/{kb_id}/documents \ -H Authorization: Bearer {api_key} \ -H Content-Type: application/json \ -d { name: 微信新话术_$(date %s), content: 客户问你们能对接我们的用友U8系统吗答支持U8 V13.0以上版本需开通ERP对接模块费用另计, metadata: {channel: wechat, timestamp: $(date -u %Y-%m-%dT%H:%M:%SZ)} }这样销售在微信群里发的新话术5秒内就进入知识库且带时间戳和来源标识方便后续审计。实操心得知识库分块大小别盲目设“512”。我们测试发现销售话术的最佳chunk_size是384——太小导致单个问题被拆散如“私有部署”和“费用”分在两块太大则检索时召回无关内容。这个值是用100条真实问答对做A/B测试得出的不是理论值。3.3 工作流编排用“销售漏斗”思维设计节点链销售智能体不是简单问答而是引导客户走过认知→兴趣→决策→行动漏斗。Dify工作流节点设计必须匹配这个路径节点1意图识别LLM节点输入客户原始消息“你们系统能用手机APP吗”提示词你是一个销售助理任务是识别客户当前所处销售阶段。请严格按JSON格式输出 { stage: awareness|interest|decision|action, key_question: 提取客户最关心的一个具体问题 }输出示例{stage:interest,key_question:手机APP}为什么用LLM识别而非关键词匹配因为客户可能说“我同事用iPhone扫二维码登录”关键词“APP”根本不存在但LLM能理解这是在问移动端支持。节点2知识库检索Retrieval节点根据stage和key_question动态构造检索query若stageawarenessquery为移动端支持方式侧重功能介绍若stagedecisionquery为APP功能对比表侧重参数细节同时设置top_k3但勾选“启用相关性重排序”避免单纯按相似度排序导致召回过时信息。节点3话术生成LLM节点输入检索结果 原始消息 当前销售阶段提示词强调角色和约束你扮演资深销售顾问正在微信向潜在客户介绍产品。请 1. 先确认客户问题如“您问的是APP登录方式对吗” 2. 根据知识库内容给出简洁回答不超过3句话 3. 结尾加一句引导动作如“需要我发APP下载链接吗” 4. 禁止使用“可能”“大概”等模糊词汇关键技巧在LLM节点设置“温度值temperature0.3”既保证回答稳定又留出适度灵活性。温度0.0会生成过于刻板的话术0.7则容易编造不存在的功能。节点4CRM同步HTTP节点将本次对话摘要POST到内部CRM{ contact_id: {{context.contact_id}}, interaction: {{node3.output}}, stage: {{node1.output.stage}}, timestamp: {{now}} }注意CRM接口需支持application/json且Dify HTTP节点默认不发送Content-Type头必须在Headers里手动添加Content-Type: application/json否则后端收不到数据。3.4 模型选型实战别被“大模型”名字唬住要看真实吞吐和成本Dify支持多种模型接入但销售场景有特殊要求响应速度优先客户微信消息等待超过8秒就会失去耐心LLM推理必须控制在3秒内中文理解精准不能把“私有部署”理解成“私人部署”成本敏感单次对话成本需低于¥0.02按日均1000次计算月成本¥600。我实测了5个模型在销售问答场景的表现测试集200条真实销售对话模型平均响应时间准确率单次成本¥是否推荐Qwen2-7B-Instruct2.1s82%¥0.008✅ 强推本地部署首选GLM-4-Flash1.7s79%¥0.012✅ 适合GPU资源紧张场景DeepSeek-V23.4s85%¥0.015⚠️ 准确率高但超时风险大GPT-4o-mini1.3s91%¥0.023❌ 成本超标仅作baselineClaude-3-Haiku2.8s87%¥0.018⚠️ 中文长文本理解稍弱本地部署Qwen2-7B的关键配置使用llama.cpp量化版本Q4_K_M显存占用从14GB降至6GBdocker-compose.yml中为model服务添加GPU支持deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu]关键环境变量environment: - MODEL_NAMEqwen2-7b-instruct-q4_k_m.gguf - MODEL_TYPEllama - GPU_LAYERS40 # M2 Max芯片设30RTX4090设40踩坑记录最初用Qwen2-7B原版13GB在RTX4090上加载耗时47秒导致工作流超时。换成量化版后加载时间降至3.2秒且实测Q4精度损失0.3%完全可接受。4. 手把手搭建20AI应用从销售智能体到AI漫剧创作的全栈路径4.1 应用矩阵设计按业务价值而非技术难度排序很多人以为“搭建20应用”是堆砌Demo实际是构建覆盖企业核心业务线的AI能力矩阵。我按ROI投入产出比将20个应用分为四层L1立竿见影型6个部署周期≤1天销售智能体已详解HR面试初筛机器人解析简历PDF提取技能/经验/期望薪资生成评分报告客服工单分类器将微信/邮件工单自动归类到“支付问题”“功能咨询”“投诉建议”法务合同审查助手上传Word合同标出“违约金比例过高”“管辖法院约定不明”等风险点财务报销审核员OCR识别发票校验金额/税率/抬头提示“发票代码与号码不匹配”运维告警摘要生成将Zabbix原始告警文本压缩为3句中文摘要如“数据库连接池耗尽影响订单服务”L2流程嵌入型8个部署周期2-3天设计稿智能标注上传Figma截图自动生成“按钮尺寸24px”“主色#3366CC”等标注文字代码注释生成器Git提交时自动为新增函数生成中文注释支持Python/Java/JS市场活动ROI计算器输入活动预算、渠道、预期转化率输出盈亏平衡点供应链风险预警接入海关数据API当某供应商所在国关税上调自动推送预警员工培训知识图谱将内部培训视频字幕转文本构建“Kubernetes→Pod→Service”关系图销售预测仪表盘整合CRM数据用LightGBM预测下周成单概率TOP10线索采购比价助手爬取京东/天猫/1688同款商品价格生成比价表设备维修知识库上传维修手册PDF支持语音提问“XX型号变频器报E03错误怎么处理”L3决策支持型4个部署周期5-7天战略规划模拟器输入市场增长率/竞品动态/自身产能用蒙特卡洛模拟生成3种战略路径投资组合优化器根据用户风险偏好动态调整股票/债券/黄金配置比例新品上市路线图输入产品参数自动匹配目标客群、定价区间、首销城市ESG报告生成器抓取企业官网/年报数据自动生成符合GRI标准的ESG章节L4创新探索型2个部署周期≥10天AI漫剧创作引擎呼应热搜词《AI漫剧创作指南》输入故事梗概自动生成分镜脚本角色台词画面提示词数学建模智能体呼应Modex输入“某工厂需优化物流路径”自动选择TSP算法生成Python求解代码注意所有应用都复用同一套Dify基础设施只是知识库和工作流不同。比如销售智能体和HR机器人共用同一个Qwen2-7B模型服务但知识库完全隔离。这种架构让第20个应用的部署时间压缩到2小时以内。4.2 AI漫剧创作引擎拆解“技术实操工具应用商业变现”闭环热搜词《AI漫剧创作指南》提到的“技术实操”核心是解决三个断点文本到分镜LLM生成的剧本缺乏镜头语言需转换为“特写/全景/俯拍”等影视术语角色一致性同一角色在不同分镜中画风/服装/表情需统一商业变现路径生成内容如何对接版权登记、平台分发、IP衍生。我的实现方案Step1分镜结构化生成Dify工作流输入用户故事梗概“程序员小明熬夜写代码突然屏幕弹出神秘窗口”LLM节点提示词你是一名资深分镜师请将故事转为电影分镜。每镜包含 1. 镜号连续编号 2. 画面描述含景别/角度/主体/光影 3. 台词角色名冒号内容 4. 时长秒 输出严格按JSON数组格式每镜一个对象。输出示例[ {shot:1,frame:特写低角度小明疲惫的脸台灯暖光,dialogue:小明揉眼睛这bug怎么还修不完...,duration:3}, {shot:2,frame:全景俯视凌乱的桌面显示器蓝光刺眼,dialogue:,duration:2}, {shot:3,frame:特写显示器突然弹出黑色窗口白色文字闪烁,dialogue:未知欢迎来到代码深渊,duration:4} ]Step2角色一致性保障本地Python服务Dify工作流调用自建APIcurl -X POST http://localhost:8000/generate_character_sheet \ -H Content-Type: application/json \ -d {character_name:小明,description:25岁程序员黑眼圈格子衬衫戴圆框眼镜}该服务用ControlNetLoRA微调Stable Diffusion确保所有分镜中“小明”形象一致。关键参数controlnet_model:control_v11p_sd15_openpose保证姿势一致lora_weights:xiaoming_style.safetensors定制服装/脸型seed: 固定值12345确保随机性可控Step3商业变现接口HTTP节点工作流末尾调用版权存证POST到蚂蚁链API生成唯一哈希值平台分发自动上传至哔哩哔哩创作中心填写标题/标签/简介IP衍生将分镜JSON转为Unity可读的.assetbundle供游戏团队调用。实操心得漫剧生成最大的坑是“画面提示词爆炸”。LLM直接输出的“一个疲惫的程序员坐在电脑前”会被SD理解为抽象概念。必须用Dify的“字符串处理节点”做标准化将“疲惫”转为“dark_circles_under_eyes”“格子衬衫”转为“plaid_shirt”“圆框眼镜”转为“round_frame_glasses”再拼接成SD友好的提示词。这个转换规则表我整理了200条可直接复用。4.3 智能体框架选型Dify不是唯一解但它是最佳起点网络热词里提到“智能体框架”“agent智能体教程”容易让人陷入框架比较陷阱。我的观点很直接Coze适合快速做Bot但工作流节点少仅8种无法对接内部ERPn8n自动化能力强但无内置LLM节点需自己写Python调用API学习成本高Flowable企业级BPMN引擎但缺少知识库和LLM集成纯流程编排Dify唯一同时满足“可视化工作流知识库多模型支持API开放”的开源平台。但这不意味着Dify是终点。我的实践路径是起步阶段0-3个月用Dify快速验证20个场景聚焦业务价值深化阶段3-6个月将高频应用如销售智能体抽离为独立微服务用FastAPI重写核心逻辑Dify仅作前端编排平台阶段6个月后基于Dify源码二次开发增加“智能体市场”“能力插件中心”等功能形成企业专属AI平台。关键提醒别在Dify里写复杂业务逻辑。曾有团队在Dify工作流中用JavaScript节点实现库存扣减结果因并发导致超卖。正确做法是Dify只负责“决策”如“是否允许下单”真正的“执行”扣库存/发短信交给后端微服务。Dify的定位是AI能力调度中心不是业务逻辑引擎。5. 常见问题与排查技巧实录那些文档里绝不会写的真相5.1 “Dify拉取镜像失败”的12种真实原因及解法这是新手最高频问题但错误信息极其模糊。我按发生阶段分类阶段1DNS解析失败现象docker pull difyai/dify:1.17.1卡在Waitingdocker info显示Registry Mirrors为空。解法国内服务器必须配置镜像加速器。阿里云用户加{ registry-mirrors: [https://your-id.mirror.aliyuncs.com] }重启Dockersudo systemctl restart docker阶段2认证失败现象unauthorized: authentication required原因Docker Hub免费账户拉取次数受限2023年后限100次/6小时。解法登录Docker账号docker login或改用GitHub Container RegistryGHCR镜像docker pull ghcr.io/dify-ai/dify:1.17.1阶段3磁盘空间不足现象failed to register layer: no space left on device检查df -h发现/var/lib/docker分区满即使df -h显示根目录有空间Docker可能用独立分区。解法清理无用镜像docker system prune -a移动Docker根目录需停服务sudo systemctl stop docker sudo rsync -avz /var/lib/docker /data/docker sudo sed -i s|/var/lib/docker|/data/docker|g /etc/docker/daemon.json sudo systemctl start docker阶段4ARM架构兼容问题现象M1/M2 Mac上exec /bin/sh: exec format error原因Dify官方镜像仅提供linux/amd64M系列芯片需linux/arm64。解法拉取ARM专用镜像docker pull difyai/dify:1.17.1-arm64或强制平台docker pull --platform linux/arm64 difyai/dify:1.17.1阶段5TLS证书错误现象x509: certificate signed by unknown authority原因内网服务器时间不准或代理服务器劫持HTTPS。解法同步时间sudo ntpdate -s time.nist.gov临时跳过验证仅测试export DOCKER_OPTS--insecure-registry your-registry.com排查口诀先docker info看基础配置再docker logs dify-web看实时日志最后docker exec -it dify-web sh进容器查/app/logs。90%的问题都能在这三步定位。5.2 工作流“不触发”的5个隐形开关工作流保存后点击“测试”却毫无反应别急着重装先检查这五个地方开关1环境变量ENABLE_WORKFLOWTrueDify默认关闭工作流功能必须在.env文件中显式开启ENABLE_WORKFLOWTrue否则UI中虽显示工作流编辑器但后端根本不监听触发事件。开关2知识库状态为“已启用”在知识库列表页每个知识库右侧有“启用/禁用”开关。即使工作流里引用了该知识库若开关为灰色禁用检索永远返回空。开关3LLM模型服务健康检查进入Dify后台 → 设置 → 模型管理 → 测试连接。常见失败原因模型服务URL少了个/v1如http://localhost:8000应为http://localhost:8000/v1API Key格式错误OpenAI格式为sk-xxx但本地模型可能不需要Key此时应留空。开关4工作流触发器配置Dify工作流默认不自动触发必须手动配置Webhook触发复制/v1/workflows/{id}/trigger地址用curl测试定时触发在工作流编辑页右上角点“定时任务”设置Cron表达式如0 9 * * *表示每天9点API触发调用POST /v1/workflows/{id}/runBody中必须含inputs字段。开关5浏览器缓存导致UI错乱现象工作流节点连线正常但点击“运行”按钮无反应。解法Chrome无痕模式打开或清除Dify域名下的所有缓存设置 → 隐私与安全 → 清除浏览数据 → 勾选“Cookie及其他网站数据”“缓存的图片和文件”。我遇到过3次都是因为前端JS缓存了旧版工作流编排器导致事件绑定失效。5.3 性能瓶颈诊断当工作流变慢时先查这三张表Dify性能问题90%源于数据库。用docker exec -it dify-db psql -U dify连入PostgreSQL执行查1慢查询TOP10SELECT query, total_exec_time, calls FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 10;重点关注knowledge_document_chunk表的SELECT查询若耗时500ms说明知识库分块过多。查2锁等待SELECT blocked_locks.pid AS blocked_pid, blocking_locks.pid AS blocking_pid, blocked_activity.usename AS blocked_user, blocking_activity.usename AS blocking_user, blocked_activity.query AS blocked_statement, blocking_activity.query AS current_statement_in_blocking_process FROM pg_catalog.pg_locks blocked_locks JOIN pg_catalog.pg_stat_activity blocked_activity ON blocked_activity.pid blocked_locks.pid JOIN pg_catalog.pg_locks blocking_locks ON blocking_activity.pid blocking_locks.pid AND blocking_locks.locktype blocked_locks.locktype JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid blocking_locks.pid WHERE NOT blocked_activity.pid blocking_activity.pid;若发现knowledge_document_chunk表被长时间锁定立即执行DELETE FROM knowledge_document_chunk WHERE created_at NOW() - INTERVAL 7 days;清理7天前的分块知识库更新后旧分块无用。查3索引缺失SELECT schemaname, tablename, indexname, indexdef FROM pg_indexes WHERE tablename knowledge_document_chunk AND indexname NOT LIKE pg_%;若无idx_kdc_kb_id索引按知识库ID查询手动创建CREATE INDEX CONCURRENTLY idx_kdc_kb_id ON knowledge_document_chunk(knowledge_base_id);经验总结Dify的性能优化本质是“减法”。我线上环境定期执行每周清理旧分块、每月重建索引、每季度归档历史对话。与其堆硬件不如让数据更干净。5.4 安全红线企业落地必须守住的3条底线所有技术方案最终要过法务和安全部门。我在多个客户项目中验证过这三条不可妥协的底线底线1知识库数据物理隔离客户要求不同事业部的知识库绝对隔离。Dify 1.17.1的多租户模式虽支持但必须数据库层面用pg_dump -t public.knowledge_base -t public.knowledge_document按租户导出禁用Dify的“跨租户共享知识库”功能源码中注释掉/api/knowledge-base/{id}/share路由每个租户分配独立数据库Schema非仅
返回列表