零成本搭建企业级本地私有化 AI 知识库:Dify + DeepSeek 实战指南
适用场景 :企业内部文档问答、个人笔记管理、团队知识沉淀
核心优势 :数据完全本地存储、零 API 费用、支持离线使用
预计耗时 :30-45 分钟(不含模型下载时间)
一、技术架构与原理
这套方案采用经典的 RAG(检索增强生成) 架构:
用户提问 → 向量检索(Embedding) → 召回相关文档片段 → LLM 生成答案
核心组件分工:
- Ollama:本地大模型运行时,负责加载 DeepSeek 等开源模型
- Dify:可视化 AI 应用开发平台,提供知识库管理、对话界面、工作流编排
- DeepSeek:国产开源大模型,中文理解能力强,支持 1.5B 到 671B 多种规格
- Embedding 模型:将文本转为向量,实现语义检索(推荐 bge-m3 或 shaw/dmeta-embedding-zh)
二、环境准备
2.1 硬件要求
| 配置等级 | CPU | 内存 | 存储 | 可运行模型 |
|---|---|---|---|---|
| 入门 | 4核 | 8GB | 20GB | DeepSeek-R1 1.5B/7B |
| 推荐 | 8核 | 16GB | 50GB | DeepSeek-R1 14B |
| 高性能 | 16核 | 32GB+ | 100GB+ | DeepSeek-R1 32B+ |
注意:无需 NVIDIA 显卡,纯 CPU 即可运行(速度会慢一些)
2.2 安装 Docker
Docker 是整个方案的容器化基础,所有服务都通过 Docker 部署。
Windows/macOS:
- 访问 Docker 官网 下载 Docker Desktop
- 安装时勾选"使用 WSL2 后端"(Windows)或按默认配置(Mac)
- 启动 Docker Desktop,跳过登录即可
配置国内镜像源 (解决下载慢的问题):
进入 Docker Desktop → Settings → Docker Engine,添加:
json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
验证安装:
bash
docker --version
docker compose version
三、部署本地大模型(Ollama)
3.1 安装 Ollama
访问 ollama.com 下载对应系统版本,一键安装。
验证安装:
bash
ollama --version
3.2 拉取 DeepSeek 模型
根据你的硬件配置选择模型规格:
bash
# 轻量级(适合 8GB 内存)
ollama pull deepseek-r1:7b
# 标准版(推荐,16GB 内存)
ollama pull deepseek-r1:14b
# 高性能版(32GB+ 内存)
ollama pull deepseek-r1:32b
下载时间:取决于网速,7B 约 4GB,14B 约 9GB
3.3 验证模型运行
bash
ollama list # 查看已安装模型
ollama run deepseek-r1:7b # 启动交互模式
看到 >>> 提示符说明成功,输入 /bye 退出。
四、部署 Dify 平台
4.1 获取 Dify 源码
bash
# 克隆仓库(或直接从 GitHub 下载 zip 解压)
git clone https://github.com/langgenius/dify.git
cd dify/docker
4.2 配置环境变量
bash
# 复制配置文件
cp .env.example .env
# 编辑 .env 文件,在末尾添加以下关键配置
关键配置项(决定 Dify 能否连接本地 Ollama):
bash
# 启用自定义模型
CUSTOM_MODEL_ENABLED=true
# 关键:让 Docker 容器内的 Dify 能访问宿主机的 Ollama
# Windows/Mac 用这个(自动解析宿主机 IP):
OLLAMA_API_BASE_URL=http://host.docker.internal:11434
# Linux 用这个(填写实际内网 IP):
# OLLAMA_API_BASE_URL=http://192.168.1.100:11434
获取 Linux 内网 IP 的方法:
bash
ipconfig # Windows
ifconfig # Linux/Mac,找 inet 后面的地址
4.3 启动 Dify
bash
# Docker Compose V2(新版)
docker compose up -d
# 如果是旧版 Docker Compose
docker-compose up -d
首次启动会拉取多个镜像,耗时 5-10 分钟。看到所有容器状态为 healthy 即成功 。
访问 Dify :
浏览器打开 http://localhost/install,设置管理员账号(邮箱+密码),然后登录进入主界面。
五、配置模型供应商
5.1 添加对话模型(LLM)
- 点击右上角头像 → 设置 → 模型供应商
- 找到 Ollama ,点击 添加模型
- 填写配置:
- 模型类型:LLM
- 模型名称 :
deepseek-r1:7b(必须与 ollama list 显示的名称完全一致) - 基础 URL :
http://host.docker.internal:11434 - 最大 Tokens:根据模型调整,7B 建议 4096
- 点击 保存
5.2 添加 Embedding 模型(关键步骤)
Embedding 模型负责将文档转为向量,是知识库检索的基础。
先下载 Embedding 模型:
bash
# 推荐 bge-m3(中文效果好,支持多语言)
ollama pull bge-m3:567m
# 或轻量级中文模型
ollama pull shaw/dmeta-embedding-zh
在 Dify 中添加:
- 模型供应商页面,点击 添加模型
- 模型类型 选择 Text Embedding
- 模型名称 :
bge-m3:567m(或你下载的模型名) - 基础 URL :同样填写
http://host.docker.internal:11434 - 保存
5.3 设置系统默认模型
在 模型供应商 页面右侧,点击 系统模型设置:
- 系统推理模型:选择刚才添加的 deepseek-r1:7b
- 系统 Embedding 模型:选择 bge-m3:567m
- 系统重排模型:可选,暂不配置
六、创建知识库(核心步骤)
6.1 准备文档
支持格式:TXT、PDF、Word、Excel、Markdown
建议:先将文档整理好,去除页眉页脚、重复内容,单个文件不超过 10MB。
6.2 创建知识库
- 进入 Dify 主界面,点击顶部 知识库 → 创建知识库
- 选择 导入已有文本 → 上传文件(可多选)
- 点击 下一步
6.3 配置处理参数
分段设置(保持默认即可):
- 分段标识:自动
- 分段最大长度:500 Tokens
- 分段重叠长度:50 Tokens
索引方式(关键):
- 选择 高质量
- Embedding 模型:选择 bge-m3:567m
检索设置:
- 推荐选择 混合检索(结合关键词+语义检索,效果更好)
- 或者 语义检索(纯向量匹配)
点击 保存并处理,等待系统完成向量化(时间取决于文档大小)。
6.4 测试召回效果
处理完成后,点击 召回测试:
- 输入一个与文档内容相关的问题
- 查看系统召回的文档片段是否准确
- 如不准确,可调整 TopK 值(返回多少个片段)或 相似度阈值
七、创建 AI 应用
7.1 创建聊天助手
- 进入 工作室 → 创建空白应用
- 选择 聊天助手(或 Agent,如需复杂逻辑)
- 填写应用名称,如"企业知识助手"
7.2 配置应用
编排页面设置:
-
提示词(Prompt):
你是一个专业的企业知识库助手。请基于以下知识库内容回答用户问题。
如果知识库中没有相关信息,请明确告知:"抱歉,该信息未收录在知识库中,我无法回答。"
不要编造答案。知识库内容:
{{#context#}} -
关联知识库:
- 在 上下文 区域点击 添加
- 选择刚才创建的知识库
-
选择模型:
- 右上角选择 deepseek-r1:7b
- 调整 温度(0.1-0.3 适合问答,0.7+ 适合创意)
7.3 调试与测试
在右侧 调试与预览 窗口测试:
- 知识库内问题:"公司的请假流程是什么?" → 应准确回答
- 知识库外问题:"明天天气如何?" → 应拒绝回答或提示无相关信息
7.4 发布应用
点击右上角 发布 → 运行:
- 获得一个独立的 Web 访问链接
- 可嵌入到企业内网或分享给团队成员
八、进阶优化技巧
8.1 提升检索准确率
| 问题 | 解决方案 |
|---|---|
| 召回内容不相关 | 降低相似度阈值(如从 0.8 调到 0.6) |
| 遗漏关键信息 | 增加 TopK 值(从 3 调到 5-8) |
| 大文档处理慢 | 拆分为小文件,或调整分段长度 |
| 表格数据识别差 | 先转为 Markdown 表格再上传 |
8.2 对接外部工具(Agent 模式)
在 Agent 应用类型中,可添加:
- 网页搜索:补充实时信息
- 代码执行:处理数据分析任务
- 数据库查询:对接企业数据库
8.3 多模型对比
Dify 支持同时配置多个模型,在 发布 前可对比不同模型的回答质量,选择最适合的。
九、常见问题排查
| 问题现象 | 原因 | 解决方案 |
|---|---|---|
| Dify 无法连接 Ollama | Docker 网络隔离 | 检查 .env 中的 OLLAMA_API_BASE_URL 是否为内网 IP 或 host.docker.internal |
| 模型加载失败 | 模型名称不匹配 | 确保 Dify 中填写的模型名与 ollama list 显示完全一致 |
| 知识库处理卡住 | Embedding 模型未配置 | 检查是否已添加 Text Embedding 模型并设为系统默认 |
| 回答速度慢 | 纯 CPU 运行大模型 | 换更小的模型(如 1.5B),或启用 GPU 加速 |
| 文档解析失败 | 格式不支持或损坏 | 转为 TXT 或 Markdown 重试 |
十、总结与扩展
通过本教程,你已经搭建了一套完整的私有化 AI 知识库系统:
✅ 数据安全 :所有文档和模型都在本地,不上传云端
✅ 零 API 成本 :无需购买大模型 API,一次性部署长期使用
✅ 灵活扩展 :支持多知识库、多应用、多模型切换
✅ 团队协作:可发布为 Web 应用供多人使用
后续可探索方向:
- 接入企业微信/钉钉机器人,实现 IM 直接问答
- 使用 Workflow 模式搭建自动化报告生成
- 结合语音合成(TTS)实现语音交互
- 部署到服务器供远程团队访问
这套方案已被众多中小企业和个人开发者验证,是 2025 年最具性价比的本地知识库解决方案。如果在部署过程中遇到问题,欢迎在评论区留言交流。
参考资源:
- Dify 官方文档:docs.dify.ai
- Ollama 模型库:ollama.com/library
- DeepSeek 官方:deepseek.com
