以下是 Dify + RAGFlow + DeepSeek 的完整集成方案,结合企业级部署需求与开源技术栈优化,覆盖从环境搭建到生产调优的全流程,通过该方案,可构建支持百万级文档处理、响应延迟<2秒的企业级智能知识库系统。建议生产环境采用混合云架构,核心数据本地部署,弹性计算资源通过云端扩展。
一、整体架构设计
二、环境准备
-
硬件配置建议
组件 最低配置 推荐配置 Dify 4核/8GB/50GB SSD 8核/16GB/200GB SSD RAGFlow 8核/32GB/1TB NVMe 16核/64GB/2TB NVMe DeepSeek 本地Ollama(4核/8GB) 云端API(如DeepSeek-R1-7B) -
软件依赖
# 版本兼容性矩阵
Dify: 开源的大语言模型应用开发平台,支持快速构建和部署AI应用
RAGFlow: 一个开源的RAG引擎,专注于深度网页理解和检索增强生成
DeepSeek: DeepSeek是深度求索公司开发的大语言模型,有V3和R1版本,分别针对文本处理和逻辑推理
Ollama: 一个本地运行大模型的框架,支持多种模型架构,简化部署
三、分步部署指南
1. 部署Dify应用平台
前提条件
安装 Dify 之前, 请确保你的机器已满足最低安装要求:
- CPU >= 2 Core
- RAM >= 4 GiB
| 操作系统 | 软件 | 描述 |
|---|---|---|
| macOS 10.14 or later | Docker Desktop | 为 Docker 虚拟机(VM)至少分配 2 个虚拟 CPU(vCPU) 和 8GB 初始内存,否则安装可能会失败。有关更多信息,请参考 《在 Mac 内安装 Docker 桌面端》。 |
| Linux platforms | Docker 19.03 or laterDocker Compose 1.28 or later | 请参阅安装 Docker 和安装 Docker Compose 以获取更多信息。 |
| Windows with WSL 2 enabled | Docker Desktop | 我们建议将源代码和其他数据绑定到 Linux 容器中时,将其存储在 Linux 文件系统中,而不是 Windows 文件系统中。有关更多信息,请参阅使用 WSL 2 后端在 Windows 上安装 Docker Desktop。 |
步骤
# 克隆指定版本仓库
git clone https://github.com/langgenius/dify.git
cd dify/docker
# 配置环境变量
cp .env.example .env
# 关键配置项
export DIFY_API_KEY=your_dify_key
export REDIS_HOST=redis_dify
export POSTGRES_PASSWORD=pg_dify_pass
# 启动服务
docker-compose -p dify up -d --build
2. 部署RAGFlow引擎
# 克隆仓库并构建
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
# 启动服务
docker-compose -f docker-compose.yml up -d
如果出现部署之后登录注册问题,可以参考文章 juejin.cn/post/749893…
3. 集成DeepSeek LLM
方案A:本地Ollama部署
# 拉取DeepSeek模型
ollama pull deepseek-r1:7b
# 启动服务
ollama serve --port 11434 --model deepseek-r1:7b
方案B:云端API接入
# 获取API密钥
export DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 配置RAGFlow调用
vim ragflow/config.yaml
model_providers:
- name: deepseek
api_key: ${DEEPSEEK_API_KEY}
base_url: https://api.deepseek.com/v1
四、核心配置详解
- Dify与RAGFlow对接
# 在Dify控制台配置外部知识库
POST /api/v1/knowledge_bases
Headers: Authorization: Bearer {DIFY_API_KEY}
Body:
{
"name": "RAGFlow_KB",
"type": "EXTERNAL",
"config": {
"endpoint": "http://ragflow_ip:9380/api/v1",
"api_key": "ragflow_api_key"
}
}
2. 混合检索策略配置
# 在RAGFlow的pipeline中定义
from ragflow.pipelines import PipelineBuilder
pipeline = (
PipelineBuilder()
.add_retriever(
vector_retriever(
model="bge-large-zh",
top_k=10,
filter={"source": "internal_docs"}
)
)
.add_retriever(
web_retriever(
engine="serpapi",
api_key=os.getenv("SERPAPI_KEY"),
num_results=3
)
)
.add_generator(
deepseek_generator(
model="deepseek-r1",
temperature=0.3,
max_tokens=2048
)
)
.build()
)
五、性能优化方案
- 向量索引优化
# 使用HNSW+IVF混合索引
export INDEX_TYPE=hnsw_ivf
export INDEX_PARAMS='{"efConstruction": 200, "m": 64}'
2. 缓存策略
# 在Dify的docker-compose.yml中添加
services:
cache:
image: redis:7.0-alpine
command: redis-server --maxmemory 4gb --maxmemory-policy allkeys-lru
六、测试与验证
- 基准测试命令
# 压力测试
hey -n 1000 -c 50 http://dify_ip:80/api/v1/chat/completions
# 检索精度测试
curl -X POST http://ragflow_ip:9380/api/v1/retriever/test \
-H "Content-Type: application/json" \
-d '{
"query": "量子计算原理",
"documents": }'
2. 日志分析
# 查看RAGFlow解析日志
docker logs -f ragflow_server_1 | grep "Document Parsing"
# Dify请求追踪
docker logs -f dify_api_1 | grep "Request ID"
七、典型问题排查
| 现象 | 解决方案 |
|---|---|
| 检索结果不相关 | 检查分块大小(建议512-1024 tokens) |
| 生成内容重复 | 调整temperature(0.1-0.3) |
| 响应延迟高 | 启用RAGFlow缓存层 |
| 内存溢出 | 限制Ollama的--gpu-layers参数 |