从零部署 DeepSeek 企业知识库:Dify、Docker 与完整命令实战指南
DeepSeek 企业知识库搭建|附完整命令
在企业数字化转型过程中,知识库已经不再只是“文档存储系统”,而是逐渐演变为企业内部的智能问答、知识检索、流程辅助和决策支持平台。随着 DeepSeek 等大模型能力的快速提升,企业可以基于大模型构建一个能够理解内部文档、回答业务问题、辅助员工工作的智能知识库系统。
本文将从实际落地角度出发,介绍如何搭建一个基于 DeepSeek 的企业知识库系统,并附上较完整的部署命令。文章内容适合技术负责人、后端工程师、AI 应用开发者以及希望在公司内部落地 AI 知识库的团队参考。
一、什么是企业知识库?
企业知识库是用于集中管理企业内部知识资产的系统,例如:
- 产品文档
- 技术文档
- 运维手册
- 规章制度
- 销售话术
- 客服 FAQ
- 项目资料
- 合同模板
- 培训资料
- 研发规范
- API 文档
- 历史问题解决方案
传统知识库通常依赖关键词搜索,例如输入“报销流程”,系统返回包含该关键词的文档。但这种方式存在明显问题:
- 搜索不够智能:用户必须知道准确关键词。
- 文档太多时难以定位答案:返回一堆文档,仍需要人工阅读。
- 无法理解上下文:比如“出差回来怎么报账?”和“差旅报销流程”语义相近,但关键词不同。
- 不能总结和推理:传统系统只负责展示资料,不能帮用户组织答案。
而基于 DeepSeek 的企业知识库,则可以结合大模型和向量检索技术,实现类似下面的效果:
用户提问:
“员工出差回来后,机票和住宿费用怎么报销?”
系统回答:
根据公司《差旅报销制度》,员工出差结束后需在 7 个工作日内提交报销申请。报销材料包括:机票行程单、住宿发票、出差审批单和费用明细。住宿费用需符合对应职级的报销标准,超出部分需部门负责人审批。
这类系统通常采用 RAG 架构,也就是 Retrieval-Augmented Generation,中文一般称为“检索增强生成”。
二、整体架构说明
一个典型的 DeepSeek 企业知识库系统,一般由以下几个部分组成:
用户提问
↓
前端 / 聊天界面
↓
后端服务
↓
向量检索系统
↓
召回相关知识片段
↓
DeepSeek 大模型生成答案
↓
返回用户
核心组件包括:
| 组件 | 作用 |
|---|---|
| DeepSeek | 用于理解问题、生成回答 |
| Embedding 模型 | 将文本转成向量 |
| 向量数据库 | 存储和检索企业文档向量 |
| 文档解析模块 | 解析 PDF、Word、Markdown、网页等 |
| RAG 应用框架 | 负责知识库管理、检索和问答流程 |
| Web 界面 | 方便员工上传文档和提问 |
本文以比较容易落地的方案为例:
- Dify:作为 AI 应用平台和知识库管理工具
- DeepSeek API:作为大语言模型
- Docker Compose:快速部署
- 向量数据库:使用 Dify 内置支持的向量存储方案
- Nginx:可选,用于域名访问和 HTTPS
这种方案的优点是:
- 部署门槛低;
- 有可视化后台;
- 支持文档上传和知识库切片;
- 可以配置 DeepSeek API;
- 适合企业内部快速试点和上线。
三、服务器准备
建议准备一台 Linux 服务器,配置可以参考:
| 用途 | 推荐配置 |
|---|---|
| 小型团队测试 | 2 核 CPU / 4GB 内存 / 40GB 磁盘 |
| 中小企业内部使用 | 4 核 CPU / 8GB 内存 / 100GB 磁盘 |
| 较大规模使用 | 8 核 CPU / 16GB 内存以上 |
操作系统推荐:
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
- Debian 12
- CentOS Stream 9
本文以 Ubuntu 22.04 为例。
四、安装基础环境
首先登录服务器:
ssh root@你的服务器IP
更新系统:
apt update && apt upgrade -y
安装常用工具:
apt install -y curl wget git vim unzip net-tools ca-certificates gnupg lsb-release
设置时区:
timedatectl set-timezone Asia/Shanghai
查看时间:
date
五、安装 Docker 和 Docker Compose
安装 Docker 官方源:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
添加 Docker 软件源:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
> /etc/apt/sources.list.d/docker.list
更新软件源:
apt update
安装 Docker:
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动 Docker:
systemctl enable docker
systemctl start docker
查看 Docker 版本:
docker version
查看 Docker Compose 版本:
docker compose version
如果能正常显示版本号,说明 Docker 环境已经安装完成。
六、部署 Dify 知识库平台
Dify 是一个开源的大模型应用开发平台,支持构建聊天机器人、Agent、工作流和知识库应用。企业可以通过 Dify 上传内部资料,配置大模型,然后快速搭建一个知识问答系统。
1. 下载 Dify 项目
进入 /opt 目录:
cd /opt
克隆 Dify 仓库:
git clone https://github.com/langgenius/dify.git
进入 Docker 部署目录:
cd /opt/dify/docker
复制环境变量文件:
cp .env.example .env
七、配置 Dify 环境变量
打开 .env 文件:
vim .env
在实际企业环境中,建议重点关注以下配置。
1. 设置访问地址
如果你暂时使用服务器 IP 访问,可以配置:
CONSOLE_WEB_URL=http://你的服务器IP
APP_WEB_URL=http://你的服务器IP
SERVICE_API_URL=http://你的服务器IP
如果你准备使用域名,例如:
kb.example.com
则可以配置:
CONSOLE_WEB_URL=https://kb.example.com
APP_WEB_URL=https://kb.example.com
SERVICE_API_URL=https://kb.example.com
2. 设置密钥
生成随机密钥:
openssl rand -base64 42
将生成结果填入:
SECRET_KEY=你生成的随机密钥
3. 配置上传文件大小
企业知识库经常需要上传 PDF、Word 等文件,可以适当放大上传限制:
UPLOAD_FILE_SIZE_LIMIT=50
如果需要支持更大的文档,可以设置为:
UPLOAD_FILE_SIZE_LIMIT=100
八、启动 Dify
在 /opt/dify/docker 目录下执行:
docker compose up -d
查看容器状态:
docker compose ps
查看日志:
docker compose logs -f
如果需要查看某个服务日志,例如 API 服务:
docker compose logs -f api
启动完成后,在浏览器访问:
http://你的服务器IP
首次访问时,系统会提示创建管理员账号。按照页面提示完成注册即可。
九、配置 DeepSeek 模型
Dify 启动成功后,需要配置 DeepSeek 模型。
1. 获取 DeepSeek API Key
访问 DeepSeek 开放平台,创建 API Key。获取后妥善保存,不要泄露到公开仓库或聊天记录中。
2. 在 Dify 中添加模型供应商
进入 Dify 控制台后,依次进入:
设置 → 模型供应商 → 添加模型供应商
如果页面中已经支持 DeepSeek,可直接选择 DeepSeek 并填写 API Key。
如果通过 OpenAI Compatible 方式接入,可以使用类似配置:
Provider: OpenAI-API-Compatible
API Endpoint: https://api.deepseek.com
API Key: 你的 DeepSeek API Key
Model Name: deepseek-chat
常用模型示例:
deepseek-chat
deepseek-reasoner
其中:
deepseek-chat:适合通用对话、知识库问答;deepseek-reasoner:适合复杂推理,但响应速度和成本可能更高。
对于企业知识库,通常建议优先使用:
deepseek-chat
除非涉及复杂分析、推理和多步骤决策,再考虑使用 deepseek-reasoner。
十、配置 Embedding 模型
企业知识库不仅需要大语言模型,还需要 Embedding 模型。Embedding 的作用是将文档内容和用户问题转换成向量,然后通过向量相似度找到相关内容。
如果只配置 DeepSeek 聊天模型,而没有配置 Embedding 模型,知识库检索效果会受到影响,甚至无法正常构建知识库。
可以选择以下 Embedding 方案:
| 方案 | 说明 |
|---|---|
| Dify 默认支持的 Embedding 服务 | 配置简单 |
| OpenAI Embedding | 效果较好,但需要外部 API |
| BGE 系列中文 Embedding | 中文效果好,适合私有化部署 |
| text2vec | 中文场景常用 |
| Jina Embeddings | 多语言效果不错 |
如果企业对数据安全要求较高,建议本地部署 Embedding 模型。例如使用 Ollama 或 Xinference 部署。
十一、本地部署 Embedding 模型:以 Ollama 为例
如果希望在本地服务器上运行 Embedding 模型,可以安装 Ollama。
1. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
启动 Ollama:
systemctl enable ollama
systemctl start ollama
查看服务状态:
systemctl status ollama
2. 下载 Embedding 模型
例如下载 nomic-embed-text:
ollama pull nomic-embed-text
查看本地模型:
ollama list
测试 Embedding 模型是否可用:
curl http://localhost:11434/api/embeddings -d '{
"model": "nomic-embed-text",
"prompt": "企业知识库测试文本"
}'
如果返回向量数组,说明模型可以正常工作。
3. 在 Dify 中配置 Ollama Embedding
在 Dify 后台添加模型供应商时,可以选择 Ollama,或通过兼容方式配置。
如果 Dify 容器需要访问宿主机上的 Ollama,要注意容器网络问题。Linux 下可以使用宿主机 IP,例如:
ip addr
假设服务器内网 IP 是:
172.17.0.1
则 Ollama 地址可以配置为:
http://172.17.0.1:11434
如果需要让 Ollama 监听所有地址,编辑 systemd 配置:
systemctl edit ollama
填入:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
重新加载并重启:
systemctl daemon-reload
systemctl restart ollama
检查端口监听:
ss -tunlp | grep 11434
十二、创建企业知识库
Dify 配置好大模型和 Embedding 模型后,就可以创建企业知识库。
操作路径:
知识库 → 创建知识库 → 上传文档
建议按照业务主题拆分知识库,例如:
人事制度知识库
财务报销知识库
产品手册知识库
售后客服知识库
研发规范知识库
运维手册知识库
销售资料知识库
不要把所有文档无脑放到一个知识库中,否则可能导致:
- 检索范围过大;
- 答案引用不准确;
- 不同部门资料相互干扰;
- 权限管理困难;
- 后期维护成本高。
十三、文档切片策略
企业知识库效果好不好,文档切片非常关键。
常见切片方式包括:
| 切片方式 | 适用场景 |
|---|---|
| 自动切片 | 普通文档、FAQ、制度文档 |
| 按标题切片 | 层级清晰的 Markdown、Word 文档 |
| 按段落切片 | 说明文档、政策文本 |
| 自定义分隔符 | 结构化内容 |
| 问答对格式 | 客服 FAQ、售后问答 |
建议参数:
单个文本块长度:500~1000 字
重叠长度:50~150 字
召回数量:3~8 条
相似度阈值:0.3~0.6
对于中文知识库,建议先从以下参数开始测试:
文本块长度:800
重叠长度:100
Top K:5
相似度阈值:0.4
如果回答经常缺少上下文,可以适当增加文本块长度或 Top K。
如果回答引用了无关内容,可以提高相似度阈值,或者优化文档分类。
十四、创建知识库问答应用
创建好知识库后,需要创建一个聊天应用。
操作路径:
工作室 → 创建应用 → 聊天助手
然后在应用配置中绑定对应知识库。
建议系统提示词这样写:
你是公司内部知识库助手,负责根据企业知识库内容回答员工问题。
回答要求:
1. 优先依据知识库内容回答;
2. 如果知识库中没有相关内容,请明确说明“根据当前知识库资料,暂未找到相关信息”;
3. 不要编造公司制度、流程、价格、合同条款或技术结论;
4. 回答要简洁、准确、结构清晰;
5. 如果涉及流程,请使用步骤形式说明;
6. 如果涉及制度,请提醒用户以公司最新正式文件为准;
7. 必要时列出引用来源。
如果是客服场景,可以改成:
你是企业客服知识库助手,只能依据已上传的产品资料、售后政策和 FAQ 回答客户问题。
当知识库没有相关内容时,不要猜测,请回复:当前资料中暂未查询到该问题的准确答案,建议转人工客服确认。
回答语气要专业、礼貌、简洁。
十五、完整部署命令汇总
下面给出从零开始部署的完整命令汇总,适合直接参考。
1. 系统初始化
ssh root@你的服务器IP
apt update && apt upgrade -y
apt install -y curl wget git vim unzip net-tools ca-certificates gnupg lsb-release openssl
timedatectl set-timezone Asia/Shanghai
2. 安装 Docker
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
> /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable docker
systemctl start docker
docker version
docker compose version
3. 下载并启动 Dify
cd /opt
git clone https://github.com/langgenius/dify.git
cd /opt/dify/docker
cp .env.example .env
openssl rand -base64 42
编辑环境变量:
vim .env
启动服务:
docker compose up -d
查看状态:
docker compose ps
查看日志:
docker compose logs -f
4. 安装 Ollama Embedding 服务
curl -fsSL https://ollama.com/install.sh | sh
systemctl enable ollama
systemctl start ollama
ollama pull nomic-embed-text
ollama list
配置 Ollama 监听:
systemctl edit ollama
写入:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
重启:
systemctl daemon-reload
systemctl restart ollama
ss -tunlp | grep 11434
测试:
curl http://localhost:11434/api/embeddings -d '{
"model": "nomic-embed-text",
"prompt": "企业知识库测试文本"
}'
十六、配置 Nginx 反向代理
如果企业希望通过域名访问,例如:
https://kb.example.com
可以安装 Nginx:
apt install -y nginx
创建站点配置:
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:80;
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;
}
}
启用站点:
ln -s /etc/nginx/sites-available/kb.example.com /etc/nginx/sites-enabled/kb.example.com
nginx -t
systemctl reload nginx
如果要申请 HTTPS,可以安装 Certbot:
apt install -y certbot python3-certbot-nginx
申请证书:
certbot --nginx -d kb.example.com
设置自动续期:
systemctl status certbot.timer
测试续期:
certbot renew --dry-run
十七、企业知识库安全建议
企业知识库涉及内部资料,安全非常重要。建议至少做好以下几点:
1. 不要上传高敏感数据
例如:
- 员工身份证号
- 银行账号
- 未脱敏客户信息
- 商业机密合同
- 源码核心凭证
- 数据库密码
- API Token
如果确实需要上传,应先进行脱敏处理。
2. 管理好 API Key
DeepSeek API Key 不要写入公开代码仓库,也不要放在前端页面中。
建议使用:
环境变量
密钥管理系统
服务器配置文件权限控制
3. 设置访问权限
企业内部知识库应尽量接入统一身份认证,例如:
- LDAP
- OAuth2
- SSO
- 企业微信
- 飞书
- 钉钉
不同部门应拥有不同知识库权限。例如财务制度可以面向全员,但财务内部报表不应开放给所有员工。
4. 定期更新文档
知识库不是一次性项目。制度、产品、流程都会变化,如果文档不更新,AI 回答就会过期。
建议建立维护机制:
每周:更新 FAQ 和常见问题
每月:检查制度和流程类文档
每季度:清理无效文档
重大变更:立即更新知识库
十八、常见问题排查
1. 页面打不开
检查容器是否启动:
cd /opt/dify/docker
docker compose ps
查看日志:
docker compose logs -f
检查端口:
ss -tunlp | grep 80
2. 模型调用失败
检查 API Key 是否正确,DeepSeek Endpoint 是否配置正确。
可以用 curl 测试:
curl https://api.deepseek.com/chat/completions \
-H "Authorization: Bearer 你的DeepSeek_API_Key" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-chat",
"messages": [
{
"role": "user",
"content": "你好,请简单介绍一下你自己"
}
]
}'
3. 知识库回答不准确
可以从以下方向优化:
- 检查文档是否清晰;
- 调整切片大小;
- 调整召回数量;
- 提高相似度阈值;
- 优化系统提示词;
- 将不同业务文档拆分为多个知识库;
- 使用更适合中文的 Embedding 模型。
4. 上传文件失败
检查 .env 中上传大小限制:
UPLOAD_FILE_SIZE_LIMIT=100
检查 Nginx 配置:
client_max_body_size 100m;
重启服务:
docker compose restart
systemctl reload nginx
十九、最佳实践总结
搭建 DeepSeek 企业知识库并不只是把模型接进来,更重要的是做好知识工程。一个好用的企业知识库,通常需要满足以下条件:
-
文档结构清晰
文档标题、章节、段落要规范,避免大量口语化、重复和过期内容。 -
知识分类明确
按部门、业务线、场景拆分知识库,而不是所有内容混在一起。 -
提示词严格约束
明确要求模型“基于知识库回答,不知道就说不知道”。 -
持续维护更新
知识库是长期工程,不是一次部署完成就结束。 -
权限和安全到位
企业内部资料需要分级管理,避免敏感信息泄露。 -
定期评测效果
可以整理一批标准问题,定期测试回答准确率、召回率和用户满意度。
二十、结语
基于 DeepSeek 搭建企业知识库,是目前企业落地 AI 应用中非常实用的一类场景。它不需要一开始就训练自己的大模型,而是通过 RAG 架构,将企业内部文档与大模型能力结合起来,让员工可以用自然语言快速获取所需信息。
通过本文介绍的方案,你可以使用 Docker 快速部署 Dify,接入 DeepSeek 模型,再结合本地 Embedding 服务,构建一个可用的企业智能知识库系统。
对于企业来说,真正的价值不只是“部署了一个 AI 工具”,而是把分散在文档、制度、经验和流程中的知识沉淀下来,并通过大模型让这些知识变得更容易被访问、理解和复用。