Ollama + DeepSeek + Dify 个人知识库本地构建完整教程
📋 系统要求
- 操作系统: Ubuntu 20.04+/Windows WSL2/macOS
- 内存: 至少16GB RAM(推荐32GB)
- 存储: 至少50GB可用空间
- 显卡: 可选,CPU可运行但较慢
- 网络: 可访问互联网下载模型
一、基础环境准备
1.1 安装Docker和Docker Compose
Ubuntu/Linux:
# 安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 将当前用户加入docker组
sudo usermod -aG docker $USER
newgrp docker
1.2 安装Ollama
Linux/macOS:
curl -fsSL https://ollama.com/install.sh | sh
Windows:
- 从 ollama.com 下载安装程序
- 或使用WSL2安装Linux版本
二、安装和配置Ollama
2.1 启动Ollama服务
# 启动Ollama服务
ollama serve
# 保持服务运行,新开终端继续操作
2.2 下载DeepSeek模型
# 下载DeepSeek最新模型(约4.3GB)
ollama pull deepseek-coder:6.7b # 代码专用模型
# 或
ollama pull deepseek-r1:7b # 推理优化模型
# 或
ollama pull deepseek-llm:7b # 通用模型
# 查看已下载模型
ollama list
2.3 测试Ollama接口
# 测试模型运行
ollama run deepseek-coder:6.7b "你好,请介绍一下自己"
# 测试API接口
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-coder:6.7b",
"prompt": "你好",
"stream": false
}'
三、安装和配置Dify
3.1 克隆Dify仓库
cd ~
git clone https://github.com/langgenius/dify.git
cd dify
3.2 配置环境变量
# 复制环境变量文件
cp .env.example .env
# 编辑.env文件,修改以下关键配置
nano .env
关键配置修改:
# 数据库配置
DB_USERNAME=postgres
DB_PASSWORD=dify123456
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify
# Redis配置
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
# 模型配置 - 添加Ollama支持
LLM_MODELS=openai/ollama
OLLAMA_API_BASE_URL=http://host.docker.internal:11434/v1 # Windows/macOS
# 或对于Linux
# OLLAMA_API_BASE_URL=http://172.17.0.1:11434/v1
# 启用Ollama
OLLAMA_ENABLED=true
3.3 启动Dify服务
# 使用Docker Compose启动
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
四、配置Dify连接Ollama
4.1 访问Dify控制台
- 打开浏览器访问:
http://localhost:3000 - 完成初始设置:
- 创建管理员账户
- 设置工作区名称
4.2 配置模型提供商
- 进入 设置 > 模型提供商
- 点击 Ollama 标签
- 配置参数:
- 模型名称:
deepseek-coder:6.7b - API密钥: 留空(本地部署)
- API基础URL:
- macOS/Windows:
http://host.docker.internal:11434/v1 - Linux:
http://172.17.0.1:11434/v1
- macOS/Windows:
- 模型名称:
- 点击 验证,确认连接成功
4.3 创建模型配置
- 进入 设置 > 模型
- 点击 添加模型
- 配置参数:
- 模型类型: 文本生成
- 模型名称: DeepSeek-Coder-6.7B
- 模型ID:
deepseek-coder:6.7b - 模型提供商: Ollama
- 最大token数: 8192
- 默认启用: 是
五、创建个人知识库
5.1 准备知识库文档
# 创建知识库目录结构
mkdir -p ~/knowledge-base/documents
cd ~/knowledge-base/documents
# 示例:创建一些文档
# 可以是.txt, .md, .pdf, .docx, .pptx, .html, .json文件
echo "# 个人笔记" > 个人笔记.md
echo "这是我的个人知识库,包含技术学习和项目记录。" >> 个人笔记.md
5.2 在Dify中创建知识库
- 进入 知识库 页面
- 点击 创建知识库
- 填写信息:
- 名称: 个人知识库
- 描述: 我的本地知识管理
- 权限: 私有
- 点击 创建
5.3 上传和处理文档
- 进入创建的知识库
- 点击 添加文档
- 选择上传方式:
- 文件上传: 上传本地文档
- 文本导入: 直接粘贴文本
- 网站抓取: 输入URL抓取网页
- 配置处理设置:
- 分段方法: 智能分段
- 文本清洗: 启用
- 向量化模型: 选择本地嵌入模型
- 点击 保存并处理
5.4 配置本地嵌入模型(可选)
如果希望完全本地化,可以添加本地嵌入模型:
# 下载嵌入模型
ollama pull nomic-embed-text
在Dify模型配置中添加:
- 模型类型: 嵌入
- 模型名称: Nomic-Embed-Text
- 模型ID:
nomic-embed-text - 提供商: Ollama
六、创建AI应用
6.1 创建对话型应用
- 进入 应用 页面
- 点击 创建应用
- 选择 对话型应用
- 配置:
- 名称: 知识库助手
- 模型: 选择刚才配置的DeepSeek模型
- 知识库: 关联刚才创建的知识库
6.2 配置提示词
在应用编辑器中,配置系统提示词:
你是一个基于个人知识库的智能助手。请根据提供的知识库内容回答用户问题。
回答要求:
1. 基于知识库内容,不要编造信息
2. 如果知识库没有相关信息,如实告知
3. 回答要简洁清晰
4. 可以适当扩展解释,但需基于已有知识
6.3 测试应用
- 进入应用对话界面
- 提问测试:
- “知识库中有哪些内容?”
- “总结一下我的个人笔记”
- 或针对你上传文档的具体问题
七、高级配置和优化
7.1 优化Ollama性能
# 创建Ollama配置文件
mkdir -p ~/.ollama
nano ~/.ollama/config.json
添加配置:
{
"models": {
"deepseek-coder:6.7b": {
"num_gpu": 1, # 如果有GPU
"num_thread": 8, # CPU线程数
"num_ctx": 8192 # 上下文长度
}
}
}
7.2 配置Dify工作流
- 在Dify中创建 工作流 应用
- 添加节点:
- 知识库检索
- 文本处理
- 模型调用
- 结果格式化
- 实现复杂处理逻辑
7.3 设置自动备份
# 创建备份脚本
nano ~/backup-knowledge-base.sh
#!/bin/bash
# 备份数据库
docker exec dify-db-1 pg_dump -U postgres dify > ~/backups/dify_db_$(date +%Y%m%d).sql
# 备份知识库文件
cp -r ~/knowledge-base ~/backups/knowledge-base_$(date +%Y%m%d)
八、故障排除
常见问题解决:
-
Ollama连接失败
# 检查Ollama服务 systemctl status ollama # 重启服务 ollama serve -
Dify容器无法访问Ollama
# 检查网络连接 docker exec dify-api-1 curl http://host.docker.internal:11434 # 修改为IP地址 # Linux使用: http://172.17.0.1:11434 -
模型加载慢
# 增加Ollama内存限制 export OLLAMA_NUM_PARALLEL=2 export OLLAMA_MAX_LOADED_MODELS=2 -
知识库处理失败
- 检查文档格式
- 确认嵌入模型正常运行
- 查看Dify日志:
docker-compose logs dify-api
九、使用建议
9.1 知识库管理最佳实践
-
文档整理:
- 按主题分类存储
- 使用标准格式(Markdown优先)
- 定期清理过时内容
-
标签系统:
- 为文档添加标签
- 建立分类体系
- 方便后续检索
-
更新策略:
- 每周更新一次知识库
- 备份重要变更
- 验证AI回答准确性
9.2 性能优化
-
硬件升级:
- 增加内存
- 使用SSD存储
- 考虑GPU加速
-
软件优化:
- 定期清理Docker缓存
- 优化数据库索引
- 调整模型参数
十、后续扩展
10.1 添加更多模型
# 下载其他可用模型
ollama pull llama2:7b
ollama pull mistral:7b
ollama pull qwen:7b
10.2 集成外部工具
- 浏览器插件:网页内容直接保存到知识库
- API接口:外部应用调用知识库
- 定时任务:自动抓取更新内容
10.3 部署到服务器
- 配置域名和SSL证书
- 设置防火墙规则
- 启用用户认证
- 配置监控和告警
📝 总结
这个方案提供了完全本地的个人知识库解决方案:
- Ollama:本地运行大语言模型
- DeepSeek:优秀的开源模型
- Dify:易用的知识库管理界面
优点:
- 完全本地,数据隐私安全
- 免费使用,无API费用
- 可定制性强
- 支持多种文档格式
注意事项:
- 需要一定的硬件资源
- 初次设置较复杂
- 模型效果可能不如云端大模型
现在你已经拥有了一个完全本地的个人知识库系统,可以开始整理和学习你的知识资产了!
4903




被折叠的 条评论
为什么被折叠?



