ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Dify本地知识库搭建与公网访问实操:从Docker部署到模型对接全指南

Dify本地知识库搭建与公网访问实操:从Docker部署到模型对接全指南 1. 为什么要在本地点一套 Dify 知识库先说说我当时遇到的真实情况。团队内部有一堆产品文档、技术规范、项目复盘平时散落在各个同事的网盘和聊天记录里真要查某个具体细节翻半天找不到找到了可能还是过时版本。后来大家开始用各种在线知识库工具文档是统一了但问题又来了数据全部放在第三方服务上敏感内容心里没底离线或者网络不好的时候基本没法用。所以我就把目光放到了本地知识库这个方向上。所谓本地知识库简单说就是让我自己的服务器或电脑来承担文档存储和智能问答的全部工作不依赖外部厂商。而Dify是目前把这件事做起来最顺手的开源智能体平台之一它内置了知识库管理、模型接入、工作流编排和 API 发布能力不需要自己从头写检索逻辑也不用单独搭一套后台管理系统一条 Docker Compose 命令就能把整个平台拉起来。这套方案做完之后我自己的体会是它解决了三个具体痛点。第一数据和文档可控所有内容都留在本地第二知识库可以不断往里加内容模型会基于新的资料来回答而不是只靠训练时的旧记忆第三通过合理配置网络外网和手机也都能直接访问人在外面也能查内部资料。这个项目标题里点到的几个关键字——“Dify”“本地知识库”“外网访问”——其实是三个环环相扣的部分先部署好 Dify再往里面建知识库最后解决访问通道。我在实际搭建过程中发现每一步都有不少容易踩坑的地方不是装完就完事了。这篇文章就把我完整走通的过程、参数选择、踩坑记录全部写出来给也想在本地搭一套知识库的人做个参考。2. 整体方案设计先想清楚再动手2.1 Dify 能解决什么问题不能解决什么问题Dify 不是一个简单的“文档问答机器人”工具它更像一个完整的 LLM 应用开发平台。你可以在里面管理多个知识库每个知识库可以挂不同的文档你可以接入本地部署的大模型也可以接入在线模型服务你还能把多个模型调用、知识检索、条件分支串成一个工作流做成类似“先检索、再总结、最后走审批”的复杂应用。但也正因为它是平台型产品用之前要先清楚哪些事它替你做不了。比如Dify 本身不提供大模型能力你需要自己准备模型服务Dify 也不替你解决公网带宽和安全防护这些还得靠运维侧方案补上。所以做架构决策的时候我的思路是Dify 管应用逻辑和知识库管理模型服务单独跑网络访问用轻量反代方案解决。2.2 本地部署的硬件环境选择Dify 的轻量使用并不需要很强的机器但知识库检索和模型推理对资源还是有一定要求的。我目前的部署环境是一台 16 核 32G 内存的 Linux 服务器系统盘留了 200G 给 Docker 镜像和数据卷。如果只是个人使用、文档量不大8G 内存的机器也够用但建议至少保证 4 核 CPU 和 8G 以上内存因为 Docker 里面不止跑 Dify 自身还要跑数据库、缓存、API 服务和后端 Worker几个容器加起来开销不小。存储方面我的建议是把 Docker 的数据目录单独挂到一块数据盘上。知识库上传的文档、向量化后的索引、PostgreSQL 里的数据都会持续增长如果和系统盘混在一起一是空间不够不好扩展二是备份迁移不方便。内存方面如果你还要在同一台机器上跑本地大模型比如通过 Ollama 跑 qwen2.5-7b-instruct 这种 7B 规模的模型那么 16G 内存只是起步32G 会更稳。因为模型加载本身就要占好几个 G再加上 Dify 的各个容器和知识库索引内存不够就会出现容器被杀、服务无响应的情况。2.3 架构选型一条 Docker Compose 解决依赖Dify 官方推荐用 Docker Compose 方式部署这也是我最终选择的方式。原因很简单Dify 依赖的组件比较多有 PostgreSQL、Redis、Weaviate或者 Qdrant、Sandbox、API、Worker、Web 前端等手动一个个装不仅费时而且版本兼容问题能让人崩溃。Docker Compose 把这些依赖全部编排在一个 docker-compose.yaml 文件里一条命令就能全部拉起来。更关键的是升级的时候只需要拉新的镜像、重启服务即可不需要手动改数据库结构官方镜像会把迁移脚本一并处理掉。如果你选择不用 Docker 而直接在一台机器上手动安装这些组件理论上也可以但我不推荐。Dify 的开发迭代速度挺快社区版版本更新频繁手动部署方式很难跟上官方更新节奏后续维护成本会高很多。2.4 版本选择与升级策略的思考Dify 分云服务和社区版社区版可以自行部署功能上已经覆盖了知识库、应用编排、工作流这些核心能力。我在搭建时用的是当时最新的社区版当前热词里提到 Dify 已经更新到了 1.17.1我建议直接拉最新版本镜像不要用太旧的版本因为知识库的分段策略、索引方式、API 接口在版本间变化不小旧文档在新版本里未必对得上。升级这件事也不能太随意。我在升级的时候通常会先看官方 Release Notes确认是否有破坏性变更然后备份一下 Docker Volume 里的数据再拉新镜像重启。热词里提到的“更新dify”“dify 在线升级 windows”这类问题本质都是在问升级的正确姿势Windows 上的操作会稍微特殊一点后文我会单独展开。3. 本地部署 Dify 的完整过程3.1 从下载到启动Windows 和 Linux 的差异Dify 官方仓库代码打包下载后解压出来会看到一个 docker 文件夹部署的关键操作都在这个目录里完成。无论 Windows 还是 Linux都需要先准备好 Docker 环境。Windows 上用 Docker Desktop 比较省事但要注意启动 Docker Desktop 之后记得在设置里把资源调大一些尤其是内存分配如果只给 Docker 2G 内存跑完 Dify 整套服务很容易卡死。Linux 服务器上安装 Docker Engine 和 Docker Compose 插件之后可以用 git 把代码仓库克隆到指定目录也可以直接下载压缩包解压。Windows 上我建议直接下载压缩包因为有些环境没有装 git 或者 git 拉取不稳定。解压之后进入 docker 目录你会看到里面有一个 .env.example 文件这是全套配置的模板。按照热词里提到的那条命令在 docker 文件夹路径下右键打开命令行然后执行cp .env.example .env这个操作的本质是生成一个真正的环境变量文件之后所有配置——包括端口、密钥、数据库密码——都在 .env 里改。3.2 关键环境变量配置解析打开 .env 文件重点看几个参数。EXPOSE_NGINX_PORT 是 Dify 的 Web 访问端口默认是 80如果机器上已经有其他服务占用了 80 端口就把它改成别的端口比如 8080之后浏览器里访问地址就是 http://服务器IP:8080。SECRET_KEY 是一个很重要的参数用于加密敏感信息。初始模板里会有一个默认值如果多用户共用一个 Dify 实例我建议改成一段足够长的随机字符串。可以用命令生成openssl rand -base64 42还有一个需要关注的是向量数据库的配置Dify 的 .env 里通过 VECTOR_STORE 来控制使用哪种向量数据库。默认是 weaviate也可以切换成 qdrant 或 milvus。对于绝大多数中小规模知识库weaviate 已经完全够用不需要折腾其他组件。改完 .env 之后回到 docker 目录执行docker compose up -d第一次执行会拉取大量镜像耗时取决于网络情况。拉取完成后Dify 的各个容器会陆续启动通过 docker compose ps 可以查看每个容器的运行状态等到所有容器都是 healthy 或者 up 状态就可以通过浏览器访问了。3.3 初始化账号并完成首次登录Web 界面起来之后第一次访问会让你设置管理员邮箱和密码。这个账号是平台的管理员之后所有知识库、应用、API 密钥的管理都通过这个账号完成。初始化之后进到主界面左侧是应用列表和知识库入口右侧是各种工具和编排区域。首次进入后台我建议先打开“设置-模型供应商”把需要用到的模型配置好。这里就是热词里提到的“qwen2.5-7b-instruct 怎么对接本地知识库”的关键环节。如果你已经在机器上装了 Ollama可以在模型供应商页面选择 Ollama填入接口地址和模型名称Dify 就能调用到本地模型。如果不想用本地模型也可以配置在线模型服务的 API Key各家服务的配置方式在界面上都有引导。3.4 Windows 上部署的常见差异点Windows 上部署 Dify 除了 Docker Desktop 之外还有一个容易出问题的点Docker Desktop 的文件系统性能。默认的 WSL2 模式下如果代码文件放在 Windows 文件系统里磁盘 IO 会很慢拉取镜像和启动容器的速度都会受影响。建议把包含 docker 目录的整个项目文件放到 WSL2 的文件系统路径下比如 \wsl$\docker-desktop... 或者直接放在 Linux 发行版的 home 目录里。另外Windows 上执行 cp 命令不像 Linux 那么自然如果右键打开的是 PowerShellcp 是可用别名但如果你用的是 CMD就要写成 copy 命令。热词里提到“右键打开cmd-输入:cp .env.example”这个操作我建议直接换成在编辑器里手动复制 .env.example 为 .env效果一样还不会因为命令问题卡住。4. 知识库搭建让模型真正读懂你的文档4.1 创建知识库与文档分段策略Dify 后台左侧导航里找到“知识库”点击“创建知识库”输入名称之后就可以上传文档了。上传格式支持文本、Markdown、PDF、Word、Excel 等常见类型。刚接触知识库的时候最容易犯的错是把几十页的 PDF 直接丢进去而不管 Dify 怎么切分文档。事实上知识库系统的核心流程是文档先切片再把每一个切片做向量化用户提问时从向量库里检索最相关的切片最后把切片内容交给大模型组织答案。所以切片策略直接决定问答效果。Dify 提供了自动分段和自定义分段两种模式。自动分段适合格式比较规整的 Markdown 和纯文本系统会根据段落结构和字数自动切分自定义分段可以设置每段最大字符数和重叠长度。我的经验是对于技术文档、规范制度这类内容自定义分段时把段长控制在 300 到 500 字之间重叠设为 50 字左右既能保持上下文完整又不会让单次检索的信息量太散。4.2 Embedding 引擎选择影响检索效果的关键参数知识库上传文档后下一步要选择 Embedding 模型。在 Dify 的“知识库设置”里可以选择你已经接入的模型服务来生成向量。比如通过 Ollama 接入本地模型作为 Embedding 引擎也可以调用在线 Embedding 服务。Embedding 模型的选择直接影响检索准确率。如果你用同一套模型同时做问答和向量化可能遇到一个问题某些指令型模型比如 qwen2.5-7b-instruct本身不是专门的 Embedding 模型用对话模型生产向量效果不一定好。Dify 官方文档建议选择专门的 Embedding 模型比如 bge-m3、text-embedding-ada-002 这类。我目前用的是本地部署的 bge-m3 模型来做 Embedding问答模型用 qwen2.5-7b-instruct两者分开各司其职检索效果比混用更稳定。如果机器资源有限也可以先用在线 Embedding 服务把索引建好问答时再用本地模型生成回答。这种混合模式在一些小内存机器上很实用。4.3 问答测试与召回质量调整知识库建好索引之后就可以在 Dify 里创建一个聊天助手类型的应用并把知识库挂到该应用上。配置应用时系统会让你选择“提示词编排”模式其中模型选择就是刚才配置好的问答模型知识库选择就是刚建好的那个。首次接好后我建议先做一轮问答测试看模型回答是否准确。如果不准确最常见的两种情况一是检索到的知识片段和问题相关性不够二是模型被无关的检索结果干扰。针对第一种情况可以调整知识库的检索参数。Dify 中每个知识库都有“检索设置”支持向量检索、全文检索和混合检索。混合检索通常效果最好它会同时走向量相似度和关键词匹配两条路再做结果融合。我实际测试中混合检索的召回准确率明显高于单独的向量检索。针对第二种情况可以在知识库检索设置里调低“TopK”也就是限制召回片段数量。TopK 设得过大无关片段混进来模型反而会被带偏设得太小又可能漏掉关键信息。我的经验是先在 TopK3 的基础上测几轮再根据回答情况微调。4.4 从“能回答”到“答得专业”提示词里的隐藏技巧知识库能检索到内容只是第一步真正让回答“像人话”还需要在应用的提示词编排里做细化。Dify 的聊天助手应用里可以自定义 System Prompt。我一般会在提示词里加上角色设定比如“你是资深架构师”回答要求比如“仅依据知识库内容回答不要编造”格式要求比如“先给结论再展开细节”。这里有个容易被忽视的点如果知识库里查不到相关内容要让模型明确说“知识库中没有相关信息”而不是硬编一个答案。很多初版知识库应用质量拉胯不是因为检索坏了而是提示词没管住模型的行为边界。5. 模型对接让本地大模型为知识库服务5.1 在 Dify 中配置 Ollama 模型的完整步骤模型服务我选择用 Ollama 跑在本地因为配置简单、资源占用可控而且支持 GPU 加速。先在服务器上安装 Ollama然后拉取 qwen2.5-7b-instruct 模型ollama pull qwen2.5:7b-instruct拉取完成后启动 Ollama 服务默认监听 11434 端口。然后在 Dify 的“设置-模型供应商”里选择 Ollama填入API 地址为 http://host.docker.internal:11434Windows 和 Mac 的 Docker Desktop 里 host.docker.internal 指宿主机Linux 上则填 http://宿主机IP:11434也可以直接用 docker-compose 里配置的容器间通信地址模型名称填 qwen2.5:7b-instruct。配置完成后可以在 Dify 里做个简单的“模型测试”确认 Dify 能正常调用到本地模型。如果测试不通过先确认 Ollama 服务是否启动、模型是否已拉取、端口是否可达。5.2 Embedding 模型的独立部署为了提升检索效果我单独在 Ollama 里也部署了 Embedding 模型 bge-m3ollama pull bge-m3然后在 Dify 中同样通过 Ollama 供应商添加一个 Embedding 类型的模型。创建知识库时选择这个 Embedding 模型生成索引。整套配置完成后Dify 内部的分工是bge-m3 负责把文档切片转成向量、处理检索匹配qwen2.5-7b-instruct 负责根据检索到内容生成最终回答。这里补充一条我踩过的坑如果本地部署的 Embedding 模型效果不佳可以先跑几个基准问题看看召回的片段是否合理。Dify 的知识库页面里能看到每个文档切片的向量化状态但更直接的排查方式是在“召回测试”功能里输入测试问题查看命中了哪几条片段。召回不对就不用急着调提示词先把分段和模型问题解决。5.3 模型并发与性能控制本地部署大模型有一个天然限制同一时刻只能处理有限的并发请求。如果多人同时使用知识库应用qwen2.5-7b-instruct 处理不过来体验会很差。我的做法是在 Dify 的应用设置里开启“流式响应”这样首字返回更快用户等待感不明显。另一个做法是在 Ollama 里通过环境变量 OLLAMA_NUM_PARALLEL 控制并发数比如设置为 2让同一时刻最多处理两个请求避免内存被多个并发推理打爆。实际使用中如果 7B 模型在 CPU 上推理一个请求可能要等几十秒才返回这种情况更适合自己一个人用不太适合开放给整个团队大规模使用。真要多人用还是建议上一块 CUDA 显卡做推理加速。6. 外网访问方案让手机和外部网络都能连上6.1 访问路径设计从本地端口到公网地址Dify 默认监听本机端口局域网内可以直接通过 http://本机IP:端口 访问。但标题里有一个明确需求是“外网能访问”这就需要把本地服务暴露到公网。市面上有几种思路各自适用场景不同我逐个说一下优劣势。第一种方案是使用云服务器做反向代理。租一台有公网 IP 的云服务器安装 Nginx把特定域名的请求转发到本地 Dify 服务所在的端口。这个方案的优点是稳定可控域名和 HTTPS 都能自己配缺点是需要一台额外的云服务器而且云服务器和家里/办公室之间的链路质量会直接影响访问体验。第二种方案是组网工具把手机、电脑和本地服务器虚拟到同一个内网里。这种方式适合个人使用优点是部署轻量不需要公网 IP缺点是国内网络的连通性、稳定性受限于节点质量公共节点的问题往往在这里显现。第三种方案是直接用 Dify 官方或第三方平台托管的版本但这和“本地知识库”的目标冲突不在讨论范围。综合来看云服务器 Nginx 反向代理是最稳、最可控的外网访问方案。它不依赖任何第三方中转域名、证书、限流都能自己掌控长期使用下来最省心。6.2 Nginx 反向代理配置示例假设我的 Dify 服务跑在本地的 8080 端口云服务器的公网 IP 是 1.2.3.4我已经有一个域名 kb.example.com 解析到这台云服务器。在云服务器上安装 Nginx 后创建配置文件 /etc/nginx/conf.d/kb.conf内容如下server { listen 80; server_name kb.example.com; client_max_body_size 50m; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } }前几行不用多解释核心是 proxy_pass 把流量转到本地的 Dify 端口。后面的 proxy_set_header 每一行都有意义Host 头让 Dify 认为请求的是正确域名X-Forwarded-* 把真实客户端 IP 和协议传给后端方便 Dify 里看日志和做安全限制Upgrade 和 Connection 是为了支持 WebSocket 连接聊天助手的流式输出依赖 WebSocket 或 SSE不配这两行容易出现打字机效果失效的问题。配置写好后执行 nginx -t 检查语法然后 systemctl reload nginx 让配置生效。6.3 HTTPS 与安全访问控制只配 HTTP 的话敏感内容在公网传输是裸奔的手机在外网随便连个 WiFi 都可能被中间人截获。我的做法是用 certbot 申请免费 SSL 证书一条命令自动配置 HTTPScertbot --nginx -d kb.example.com证书自动续期之后服务就能通过 https://kb.example.com 访问了。手机浏览器直接打开这个地址能正常访问到 Dify。另外我强烈建议在 Nginx 层做一层 Basic Auth 或者 IP 白名单不要把 Dify 后台完全裸露在公网上。因为 Dify 管理后台默认没有登录频率限制如果账号密码不够强很容易被暴力尝试。Basic Auth 是 Nginx 本身就支持的功能一行 auth_basic 就能挡住绝大多数扫描流量。加完之后即使有人拿到 https://kb.example.com也得先输入额外的访问密码才能看到 Dify 登录页。6.4 手机端访问体验优化Dify 的 Web 前端是响应式设计手机浏览器打开地址后会自动适配成移动端布局聊天的交互体验和电脑上基本一致。日常使用中我的习惯是把网址添加到手机主屏幕iOS 上用 Safari 的“添加到主屏幕”安卓上用 Chrome 的“添加到主屏幕”这样看起来就像装了一个原生 App点开就能用也不用装额外软件。如果你希望团队成员使用更便捷Dify 里创建的应用还能生成独立的 WebApp 链接把链接分享给同事他们不需要进入管理后台直接打开就是对话界面。我在团队里就是把知识库应用链接通过企业微信发下去大家点击即用完全不用教。7. 常见问题与排查技巧实录7.1 Docker 镜像拉取失败热词里反复出现“dify拉取镜像失败”这个问题我在第一次部署时也遇到过。出现在 docker compose up -d 执行后一直卡在 Pull 某个镜像的阶段或者直接报网络超时。解决思路依次如下。先看 Docker 进程是否正常运行docker info 能正常输出就说明守护进程没问题。再看网络确认机器能正常访问外网。如果这两项都没问题那极大概率是镜像源的问题。国内环境拉取 Docker Hub 镜像不稳定是普遍现象可以配置 Docker 的 registry mirror 加速器。修改 /etc/docker/daemon.json 加入 registry-mirrors 配置后重启 Docker 再重新拉取基本都能解决。还有一个容易忽略的点磁盘空间。docker compose up -d 会一次性拉取多个大镜像如果根分区只剩几个 G拉取到一半可能就会报 no space left on device。遇到这种情况先 docker system df 查看空间占用再用 docker system prune 清理无用缓存把空间释放出来。7.2 容器启动后网页打不开镜像都拉取成功docker compose ps 显示容器都是 Up 状态但浏览器访问 IP:端口 一直转圈或拒绝连接。这种情况我排查的顺序是先确认端口绑定是否正常在服务器上执行 ss -lntp 看一下端口是否被 docker-proxy 监听如果确认监听再在服务器本机 curl http://127.0.0.1:端口 看返回本机能通而外网不能通就要看防火墙和云安全组。很多云服务器默认安全组只开放了 22、80、443 等端口如果你把 Dify 放在 8080 这类自定义端口安全组没放行外部自然访问不了。还有一种情况是 Nginx 配置好了但防火墙没放行 80/443也会导致域名访问超时。7.3 知识库检索结果不准确这个问题不属于部署问题而是调优问题。我给的排查路径是先看分段是否太碎。如果 PDF 转出来的文本乱序、重复建议先用工具把 PDF 转成 Markdown 再上传。再看 Embedding 模型是否选对本地用 qwen2.5-7b-instruct 做对话可以但向量化最好用专门模型。最后调整检索参数把检索模式改成混合检索TopK 调成 3 或 5一般都能明显改善。如果做的问答应用需要引用来源Dify 的聊天助手应用里可以开启“引用和归属”回答下方会显示参考了哪几个知识片段点击可以直接跳转到原文。这个功能在人工审核回答质量时非常有帮助。7.4 Windows 环境下的特殊问题Windows 上用 Docker Desktop 跑 Dify经常遇到两个问题。一是文件挂载权限.env 和 docker 目录如果放在 NTFS 分区某些容器启动时可能会因为权限问题报错。建议把整个 docker 项目目录放在 WSL2 的 Linux 文件系统里绕开 NTFS 的权限兼容问题。二是 Docker Desktop 重启后 Dify 服务没有自动恢复。默认情况下 Docker Desktop 启动后会自动启动之前处于运行状态的容器但有时会因为容器依赖顺序问题导致部分容器起不来。我的经验是写一个简单的 Windows 脚本在 Docker Desktop 启动后自动执行cd /d D:\dify-main\docker docker compose up -d如果 Dify 容器经常启动失败先 docker compose logs -f 查看具体报错重点看 api 容器和 worker 容器的日志它们通常会打印详细的依赖连接错误。7.5 Dify 升级的注意事项Dify 社区版更新频繁热词里提到的“更新dify”“dify 在线升级 windows”都是高频问题。升级前先做数据备份Docker Volume 里的 pgdata、redisdata、storage 等目录都要保留一份。然后拉取最新代码或者在 docker 目录下直接 docker compose pull 拉取新镜像再 docker compose up -d 重建容器。升级后流程上会跑数据库迁移这个过程可能会比较慢而且整个服务在迁移期间不可用。所以升级尽量挑业务低峰期。升级完成后检查一遍知识库索引和应用配置是否正常因为个别版本的升级可能会改动向量数据库的 schema。一个比较实用的版本管理习惯升级前用 docker compose images 记录一下当前镜像的 tag万一新版本有问题可以快速通过指定旧 tag 回滚。8. 多用户与团队使用场景的进一步思考8.1 一个实例多人用的权限划分Dify 社区版在 1.10 版本之后加入了多租户能力热词里提到的“dify社区版1.10多租户”就是这个功能。在同一个 Dify 实例里管理员可以创建多个租户/工作空间不同团队的数据和应用互相隔离。这个能力对团队使用非常关键——不是所有人都应该看到所有知识库也不是所有人都应该有管理后台的权限。我的做法是管理员账号只用来做平台维护和模型配置各团队成员创建独立账号只分配应用使用权限如果某个团队需要管理自己的知识库再赋予对应的知识库管理权限。这样能把误操作和越权访问的风险降到最低。8.2 应用发布与 API 集成Dify 创建的知识库应用除了网页聊天外还能发布成 API 服务。在应用的“API 访问”页面可以生成一个 API 密钥其他系统通过 HTTP 请求就能调用知识库问答能力。我接了自己内部一个自动化监控群把 Dify 应用接成机器人逻辑群里发问题机器人回答效果非常好。API 调用时请求体里需要指定 query 和 user 等参数Dify 返回的内容里包含 answer 和引用来源。这种方式很适合把知识库能力嵌入到已有系统里比如工单系统、企业内部 IM 机器人甚至网页组件。8.3 知识库内容更新的节奏知识库最重要的是保持内容最新。我的习惯是每周更新一次文档更新的方式也很简单在后台删除旧文档、上传新版本重新生成索引。Dify 的索引是增量重建的支持按文档单独处理不需要每次全量重建所以维护成本其实很低。如果文档数量特别大建议在上传前做一次预处理把 Word/PDF 统一转成 Markdown 格式。Dify 自带解析器能处理 PDF但遇到扫描件或排版复杂的 PDF解析出来的文本质量不稳定。先转成规整的 Markdown 再上传分段效果会好很多。9. 最后的实操心得整套系统跑通到现在也有一段时间了我自己最满意的是“资料随手可查”这件事。原来查一个规范要翻好几个文档目录现在直接在手机浏览器里打开聊天页面一句话就能拿到结论和出处。而且因为模型和知识库都在自己手里内容不会外泄这一点在涉及内部敏感信息时特别重要。如果让我给后来者一个务实的建议那就是先别追求大而全。第一次部署就只建一个知识库、接一个模型、配一个最简单的应用把整条链路跑通后面再逐步加文档、调检索、做多人权限、接 API。我刚上手的时候就想一次性把所有功能都配上结果调试了很长时间反而拖慢了进度。你耐心把基础链路走通后面每一个优化点都是独立且可验证的。
返回列表