本地知识库部署:FastGPT 与 Dify 对接 Ollama 指南
前言
在数据隐私和安全性日益受到重视的今天,将大语言模型(LLM)及知识库应用部署在本地环境成为了许多开发者和企业的首选。本文详细介绍了如何在本地环境中使用 Docker 部署 Dify 和 FastGPT 两个主流的知识库平台,并将它们与 Ollama 本地大语言模型进行对接,实现私有化、离线或内网环境下的智能问答功能。
一、环境准备
1.1 硬件要求
- CPU: 建议 4 核及以上,支持虚拟化技术。
- 内存: 至少 16GB RAM(运行 3B 参数量的模型时建议 16GB+,若运行更大模型需增加至 32GB 或以上)。
- 存储: 预留 50GB 以上可用空间用于镜像、模型权重及数据库文件。
- 网络: 稳定的网络连接用于首次拉取 Docker 镜像。
1.2 软件依赖
- 操作系统: macOS (M1/M2/M3), Linux (Ubuntu 20.04+), Windows 10/11。
- Docker Engine: 版本 20.10 及以上。
- Docker Compose: 版本 2.0 及以上(部分旧版命令为
docker-compose)。 - Ollama: 最新版本。
注意:Mac M3 用户需注意散热问题,运行 3B 大小模型时温度可能接近极限,建议选择量化程度较高的较小模型以平衡性能与发热。
二、部署 Dify
Dify 是一个开源的 LLM 应用开发平台,支持快速构建 RAG(检索增强生成)应用。
2.1 获取代码
访问 Dify GitHub 仓库,下载最新稳定版的源代码或 ZIP 包。
2.2 启动服务
进入解压后的 docker 文件夹,执行以下命令自动下载镜像并启动容器:
docker-compose up -d
该过程可能需要几分钟,取决于网络状况。若遇到镜像拉取失败,请配置国内镜像加速器。
2.3 初始化配置
服务启动后,在浏览器访问 http://localhost/install 完成管理员账号注册。
2.4 调整文件上传限制
默认情况下,Dify 对上传文件大小有限制(如 15MB)。如需修改,编辑 docker 目录下的 .env 文件:
# Upload file size limit, default 15M.
UPLOAD_FILE_SIZE_LIMIT=150
NGINX_CLIENT_MAX_BODY_SIZE=150M
修改后重启容器生效:
docker-compose restart
三、部署 FastGPT
FastGPT 是另一个开源的 AI 知识库工具,基于 Node.js 构建,适合需要高度定制的场景。
3.1 获取代码
从 FastGPT 官方仓库下载源码,进入 files/docker 目录。
3.2 配置文件准备
FastGPT 默认不包含 docker-compose.yml,需指定配置文件。推荐使用 docker-compose-pgvector.yml。
同时需要在 docker 目录下创建 config.json 文件,配置基础信息。示例如下:
{
"systemEnv": {
"OPENAI_API_KEY": "sk-xxxx"
},
"llmModels": [
{
"model": "llama3.2:3b",
"name": "llama3.2:3b",
"avatar": "/imgs/model/openai.svg",
"maxContext": 125000,
"maxResponse": 4000,
"quoteMaxToken": 120000,
"maxTemperature": 1.2,
"charsPointsPrice": 0,
"censor": false,
"vision": true,
"datasetProcess": true,
"usedInClassify": true,
"usedInExtractFields": true,
"usedInToolCall": true,
"usedInQueryExtension": true,
"toolChoice": true,
"functionCall": false,
"customCQPrompt": "",
"customExtractPrompt": "",
"defaultSystemChatPrompt": "",
"defaultConfig": {},
"fieldMap": {}
}
]
}
3.3 启动服务
执行以下命令启动 FastGPT:
docker-compose -f docker-compose-pgvector.yml up -d
3.4 访问与登录
- 主页面:
http://localhost:3000 - 模型配置页:
http://localhost:3001 - 默认账号:
root - 默认密码: 可在
config.json中查看或重置,初始通常为1234。
四、本地部署 Ollama
Ollama 是一个运行本地大模型的轻量级工具,支持多种模型格式。
4.1 安装 Ollama
前往 Ollama 官网下载对应系统的安装包并安装。
4.2 拉取模型
以 llama3.2 为例,在终端执行:
ollama run llama3.2:3b
运行期间可输入 /bye 退出会话。
4.3 验证服务
确保 Ollama 服务正在运行,默认监听端口为 11434。
五、对接 Ollama 模型
5.1 Dify 对接
- 打开 Dify 控制台,进入 设置 -> 模型供应商。
- 选择 Ollama。
- 填写模型名称:
llama3.2:3b。 - 基础 URL 填写:
http://host.docker.internal:11434。注意:
host.docker.internal允许容器访问宿主机网络。若在 Linux 上,可能需要配置extra_hosts或使用宿主机 IP。 - 保存并测试连接。
5.2 FastGPT 对接
- 登录 FastGPT 模型配置页面 (
http://localhost:3001)。 - 选择 渠道 -> 添加新渠道。
- 类型选择 Ollama。
- 名称填写:
llama3.2:3b。 - 代理地址填写:
http://host.docker.internal:11434。 - 密钥项必填,可随意填写字符(FastGPT 内部校验较宽松)。
- 修改
config.json中的llmModels数组(参考上文),保存后重启服务:docker-compose down docker-compose -f docker-compose-pgvector.yml up -d
六、常见问题排查
6.1 容器无法访问 Ollama
若容器内无法连接 Ollama,检查网络模式。Docker 容器默认隔离网络,需确保 Ollama 暴露端口且容器能解析 host.docker.internal。
- Linux 方案: 在
docker-compose.yml中添加extra_hosts: ["host.docker.internal:host-gateway"]。 - Windows/macOS: 通常默认支持,若失败可尝试使用宿主机 IP 替换
host.docker.internal。
6.2 模型加载慢或显存不足
- 尝试使用量化版本模型(如
q4_0,q8_0)。 - 减少并发请求数。
- 关闭其他占用 GPU/CPU 的应用。
6.3 文件上传失败
- 检查 Nginx 配置中的
client_max_body_size。 - 确认
.env文件中UPLOAD_FILE_SIZE_LIMIT已正确修改并重启。
七、安全与维护建议
- 修改默认密码: 生产环境务必修改 root 账号密码,避免被未授权访问。
- 防火墙策略: 仅开放必要端口(如 3000, 3001, 11434),限制来源 IP。
- 定期备份: 定期备份 Docker volumes 中的数据,防止数据丢失。
- 更新维护: 关注官方发布的安全补丁,及时更新镜像版本。
通过上述步骤,您已成功搭建了一套本地化的 AI 知识库系统。这种组合特别适合需要在本地高效管理和利用知识的场景,既保证了数据隐私,又提供了灵活的扩展能力。


