从零搭建企业知识库:Dify 接入 DeepSeek 的完整部署命令指南
DeepSeek 企业知识库搭建|附完整命令
在企业内部,文档、制度、产品资料、项目经验、FAQ、合同模板、代码规范等知识往往分散在飞书、企业微信、网盘、Git、Wiki、PDF、Word 和 Excel 中。员工想找到一个准确答案,常常需要跨系统搜索、询问同事、反复确认,效率很低。
随着 DeepSeek 等大模型能力提升,企业可以基于 RAG,Retrieval-Augmented Generation,检索增强生成 技术搭建自己的企业知识库。简单来说,就是:
先把企业文档切分、向量化并存入知识库;
用户提问时,系统先从知识库中检索相关内容;
再把检索结果连同问题一起交给 DeepSeek 生成答案。
这样既能发挥大模型的理解和表达能力,又能让回答基于企业内部资料,减少“胡编乱造”。
本文将以一套相对容易落地的方案为例,介绍如何使用 Dify + DeepSeek + Ollama + Docker 搭建企业知识库,并附上完整命令。
一、整体架构说明
本文采用如下架构:
用户
│
▼
Dify Web / API
│
├── 知识库管理:文档上传、切分、索引
│
├── 应用编排:聊天机器人、工作流、API
│
▼
大模型服务
│
├── DeepSeek API:适合生产环境,效果稳定
│
└── Ollama 本地模型:适合内网测试或私有化部署
│
▼
向量数据库 / PostgreSQL / Redis
其中:
- Dify:开源 LLM 应用开发平台,支持知识库、RAG、工作流、API 发布。
- DeepSeek:用于问答、总结、推理、知识库回答。
- Ollama:用于在本地快速运行 DeepSeek、Qwen、Llama 等模型。
- Docker Compose:用于快速部署 Dify 所需的多个服务。
- 知识库文档:企业内部 PDF、Word、Markdown、TXT、网页内容等。
二、服务器配置建议
如果只是测试,可以使用较低配置服务器。
1. 测试环境
CPU:4 核
内存:8 GB
硬盘:100 GB
系统:Ubuntu 22.04 LTS
GPU:非必须
2. 生产环境
CPU:8 核及以上
内存:32 GB 及以上
硬盘:500 GB SSD 及以上
系统:Ubuntu 22.04 LTS
GPU:如需本地运行大模型,建议 NVIDIA GPU
如果使用 DeepSeek 官方 API,则服务器不一定需要 GPU;如果希望模型完全本地化运行,则建议配置 GPU。
三、安装基础环境
以下命令以 Ubuntu 22.04 为例。
1. 更新系统
sudo apt update && sudo apt upgrade -y
2. 安装常用工具
sudo apt install -y \
curl \
wget \
git \
vim \
unzip \
ca-certificates \
gnupg \
lsb-release
四、安装 Docker 和 Docker Compose
1. 安装 Docker
curl -fsSL https://get.docker.com | sudo bash
2. 启动 Docker
sudo systemctl enable docker
sudo systemctl start docker
3. 将当前用户加入 Docker 用户组
sudo usermod -aG docker $USER
执行后建议重新登录服务器,或者执行:
newgrp docker
4. 检查 Docker 版本
docker version
5. 检查 Docker Compose
docker compose version
五、部署 Dify
Dify 官方提供了 Docker Compose 部署方式,适合快速搭建企业知识库。
1. 拉取 Dify 项目
cd /opt
sudo git clone https://github.com/langgenius/dify.git
sudo chown -R $USER:$USER /opt/dify
cd /opt/dify
2. 进入 Docker 目录
cd docker
3. 复制环境变量文件
cp .env.example .env
4. 修改环境变量
vim .env
建议至少修改以下配置:
CONSOLE_WEB_URL=http://你的服务器IP
APP_WEB_URL=http://你的服务器IP
SERVICE_API_URL=http://你的服务器IP
如果后续使用域名,可以改成:
CONSOLE_WEB_URL=https://kb.example.com
APP_WEB_URL=https://kb.example.com
SERVICE_API_URL=https://kb.example.com
5. 启动 Dify
docker compose up -d
6. 查看容器状态
docker compose ps
7. 查看日志
docker compose logs -f
如果所有服务正常启动,浏览器访问:
http://服务器IP/install
然后根据页面提示创建管理员账号。
六、接入 DeepSeek API
如果企业允许使用外部 API,推荐优先接入 DeepSeek API。相比本地模型,API 模式维护成本更低,模型效果也更稳定。
1. 获取 DeepSeek API Key
登录 DeepSeek 开放平台,创建 API Key。
2. 在 Dify 中配置 DeepSeek
进入 Dify 后台:
设置 → 模型供应商 → OpenAI-API-compatible
由于 DeepSeek 兼容 OpenAI 接口,可以使用 OpenAI Compatible 方式接入。
常见配置如下:
Provider Name:DeepSeek
API Endpoint:https://api.deepseek.com/v1
API Key:你的 DeepSeek API Key
Model Name:deepseek-chat
如果需要推理模型,也可以配置:
Model Name:deepseek-reasoner
不同模型适合不同场景:
| 模型 | 适合场景 |
|---|---|
| deepseek-chat | 日常问答、知识库问答、客服助手 |
| deepseek-reasoner | 复杂推理、逻辑分析、方案设计 |
对于企业知识库,一般推荐先使用:
deepseek-chat
七、安装 Ollama,本地运行 DeepSeek
如果企业对数据安全要求较高,或者希望在内网中测试本地大模型,可以安装 Ollama。
1. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
2. 启动 Ollama 服务
sudo systemctl enable ollama
sudo systemctl start ollama
3. 检查 Ollama 状态
systemctl status ollama
4. 拉取 DeepSeek 模型
测试环境可以使用较小模型:
ollama pull deepseek-r1:7b
如果服务器性能较好,可以使用更大模型:
ollama pull deepseek-r1:14b
或者:
ollama pull deepseek-r1:32b
5. 测试模型
ollama run deepseek-r1:7b
输入:
请用一句话介绍什么是企业知识库。
如果模型能够正常回复,说明本地模型安装成功。
6. 查看本地模型列表
ollama list
八、让 Dify 访问 Ollama
默认情况下,Ollama 监听在本机的 127.0.0.1:11434。但 Dify 运行在 Docker 容器中,容器访问宿主机服务时需要注意网络地址。
1. 修改 Ollama 监听地址
创建或修改 systemd 配置:
sudo systemctl edit ollama
填入以下内容:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
保存退出后执行:
sudo systemctl daemon-reload
sudo systemctl restart ollama
检查端口:
ss -lntp | grep 11434
如果看到 0.0.0.0:11434,说明 Ollama 已经允许外部访问。
2. 测试 Ollama API
curl http://127.0.0.1:11434/api/tags
如果返回模型列表,说明 API 正常。
3. 在 Dify 中添加 Ollama 模型
进入 Dify 后台:
设置 → 模型供应商 → Ollama
配置:
Base URL:http://host.docker.internal:11434
Model:deepseek-r1:7b
如果 Linux 下 host.docker.internal 不可用,可以使用宿主机内网 IP,例如:
http://172.17.0.1:11434
也可以查看 Docker 网关:
ip addr show docker0
通常会看到:
172.17.0.1
则在 Dify 中填写:
http://172.17.0.1:11434
九、创建企业知识库
Dify 启动并接入模型后,就可以创建企业知识库。
1. 新建知识库
进入 Dify 控制台:
知识库 → 创建知识库
例如创建:
企业制度知识库
2. 上传文档
可以上传:
PDF
Word
Markdown
TXT
CSV
网页文本
建议企业先整理以下资料:
员工手册
报销制度
请假制度
产品说明书
售后 FAQ
销售话术
技术文档
项目复盘
合同模板
代码规范
安全规范
3. 文档切分建议
知识库效果很大程度取决于文档切分质量。
推荐参数:
分段长度:500~1000 字
重叠长度:50~150 字
索引方式:高质量
检索方式:向量检索 + 关键词检索
如果是制度类文档,建议按标题层级切分,例如:
第一章 总则
第二章 请假流程
第三章 报销标准
如果是产品文档,建议按功能模块切分,例如:
账号管理
订单管理
权限管理
数据导出
常见问题
十、创建知识库问答应用
1. 创建应用
进入:
工作室 → 创建应用 → 聊天助手
应用名称可以设置为:
企业知识库助手
2. 绑定知识库
在应用编排页面中添加刚才创建的知识库,例如:
企业制度知识库
产品资料知识库
售后 FAQ 知识库
3. 设置 Prompt
推荐使用如下系统提示词:
你是公司的企业知识库助手,请严格基于知识库内容回答员工问题。
要求:
1. 如果知识库中有明确答案,请准确、简洁地回答。
2. 如果知识库中没有相关内容,请说明“知识库中暂未找到相关信息”,不要编造。
3. 涉及制度、流程、金额、时间、权限等内容时,请尽量引用原文依据。
4. 如果问题不完整,请引导用户补充信息。
5. 回答使用中文,结构清晰,必要时使用列表。
4. 设置模型参数
推荐参数:
模型:deepseek-chat
Temperature:0.2~0.5
Top P:0.8
最大输出 Token:1024~2048
企业知识库问答不建议把 Temperature 设置得太高,否则答案可能更发散。
十一、完整命令汇总
下面给出从零开始部署的完整命令,适合直接复制执行。
1. 系统初始化
sudo apt update && sudo apt upgrade -y
sudo apt install -y \
curl \
wget \
git \
vim \
unzip \
ca-certificates \
gnupg \
lsb-release
2. 安装 Docker
curl -fsSL https://get.docker.com | sudo bash
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
newgrp docker
docker version
docker compose version
3. 部署 Dify
cd /opt
sudo git clone https://github.com/langgenius/dify.git
sudo chown -R $USER:$USER /opt/dify
cd /opt/dify/docker
cp .env.example .env
docker compose up -d
docker compose ps
4. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl enable ollama
sudo systemctl start ollama
ollama pull deepseek-r1:7b
ollama list
5. 配置 Ollama 允许 Docker 访问
sudo systemctl edit ollama
填入:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
然后执行:
sudo systemctl daemon-reload
sudo systemctl restart ollama
ss -lntp | grep 11434
curl http://127.0.0.1:11434/api/tags
6. 查看宿主机 Docker 网关
ip addr show docker0
通常使用:
http://172.17.0.1:11434
在 Dify 中配置 Ollama 模型即可。
十二、配置 Nginx 和 HTTPS,可选
生产环境建议使用域名和 HTTPS。
1. 安装 Nginx
sudo apt install -y nginx
2. 安装 Certbot
sudo apt install -y certbot python3-certbot-nginx
3. 配置 Nginx
假设域名为:
kb.example.com
创建配置文件:
sudo vim /etc/nginx/sites-available/kb.example.com
写入:
server {
listen 80;
server_name kb.example.com;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1;
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;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/kb.example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
4. 申请 HTTPS 证书
sudo certbot --nginx -d kb.example.com
检查自动续期:
sudo certbot renew --dry-run
十三、企业知识库优化建议
1. 文档要先治理,再上传
很多企业知识库效果不好,并不是模型不行,而是原始文档质量差。
常见问题包括:
文档过期
多个版本冲突
文件命名混乱
制度没有生效日期
图片扫描件无法识别
表格内容缺少说明
建议在上传前统一整理:
文档标题
适用部门
版本号
生效时间
责任人
更新记录
2. 按业务拆分知识库
不要把所有文档都放进一个知识库。推荐按场景拆分:
人事制度知识库
财务报销知识库
产品资料知识库
销售支持知识库
售后客服知识库
研发规范知识库
项目交付知识库
这样可以提高检索准确率,也便于权限管理。
3. 建立更新机制
企业知识库不是一次性项目,而是长期系统。
建议建立以下流程:
每个知识库指定负责人
文档变更后同步更新
定期清理过期文档
每月抽查高频问题答案
收集用户反馈优化 Prompt
4. 控制模型幻觉
企业知识库最怕“回答得很像真的,但其实是错的”。
可以通过以下方式降低风险:
要求模型只基于知识库回答
开启引用来源
降低 Temperature
对高风险问题提示人工确认
没有依据时明确回答不知道
例如在 Prompt 中加入:
如果知识库中没有依据,请不要根据常识推测答案。
5. 权限和安全
企业内部知识库往往包含敏感信息,因此必须重视安全。
建议:
开启账号登录
按部门配置知识库权限
不要把密钥写在公开代码中
定期备份数据库
限制服务器端口访问
使用 HTTPS
配置防火墙
Ubuntu 可以使用 UFW:
sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
sudo ufw status
十四、备份与恢复
Dify 使用 Docker 部署后,数据主要保存在 Docker volume 中。生产环境建议定期备份。
1. 查看 volume
docker volume ls
2. 备份 Dify 目录
cd /opt
sudo tar -czvf dify-backup-$(date +%F).tar.gz dify
3. 备份 PostgreSQL
进入 Dify Docker 目录:
cd /opt/dify/docker
查看数据库容器:
docker compose ps
执行备份:
docker compose exec db pg_dump -U postgres dify > dify-db-backup-$(date +%F).sql
如果数据库名或用户有变化,请以 .env 文件为准。
4. 恢复数据库
cat dify-db-backup-2025-01-01.sql | docker compose exec -T db psql -U postgres dify
十五、常见问题排查
1. Dify 页面打不开
检查容器状态:
cd /opt/dify/docker
docker compose ps
查看日志:
docker compose logs -f
检查端口:
sudo ss -lntp | grep 80
2. Ollama 模型无法连接
检查 Ollama:
systemctl status ollama
curl http://127.0.0.1:11434/api/tags
检查监听地址:
ss -lntp | grep 11434
如果只监听 127.0.0.1,需要按前文方式修改为:
0.0.0.0:11434
3. 知识库回答不准确
可以从以下方面优化:
重新整理文档
缩短切分长度
增加段落重叠
开启引用来源
调整 Prompt
降低 Temperature
拆分知识库
增加关键词检索
4. 上传 PDF 后效果差
如果 PDF 是扫描件,里面其实是图片,系统无法直接识别文字。需要先 OCR。
可以使用 OCR 工具把扫描 PDF 转成可复制文字,再上传到知识库。
十六、总结
使用 DeepSeek 搭建企业知识库,本质上不是简单地“接一个大模型”,而是要把企业内部知识通过 RAG 的方式组织起来,让大模型基于真实资料回答问题。
推荐落地路径如下:
第一步:部署 Dify
第二步:接入 DeepSeek API 或 Ollama 本地模型
第三步:整理企业文档
第四步:创建知识库并上传资料
第五步:创建聊天助手
第六步:优化 Prompt、检索和权限
第七步:建立长期更新机制
对于大多数企业,建议先使用:
Dify + DeepSeek API
快速验证业务价值;如果对数据安全和私有化要求较高,再逐步引入:
Dify + Ollama + 本地 DeepSeek 模型
最终,一个成熟的企业知识库不仅可以回答员工问题,还可以扩展到客服问答、销售支持、项目交付、研发规范、合同审查、运营分析等多个场景,成为企业内部的 AI 助手和知识中枢。