第一部分:RAGFlow 端配置
在 Dify 能够调用之前,确保 RAGFlow 已经就绪并提供了可访问的 API。
步骤 1: 确保 RAGFlow 正常运行
具体可以参考:
https://blog.csdn.net/qq_35354529/article/details/151149191?spm=1001.2014.3001.5502
注意启动命令使用docker compose -p ragflow up -d
- RAGFlow 服务应该已经通过 Docker 正常启动。
- 通过浏览器访问 RAGFlow 的 Web 界面(通常是
http://你的服务器IP:80
,我这个访问的地址是http://服务器ID:8580
),确保可以正常登录。
步骤 2: 创建知识库并上传文档
- 登录 RAGFlow 后,点击“知识库” -> “新建知识库”,创建一个新的知识库。
- 进入该知识库,点击“上传文件”,将包含复杂表格和图片的 PDF 文档上传。
步骤 3: 创建 API 密钥
- 点击页面右上角的“头像”图标。
- 创建API KEY
API KEY:
ragflow-E5ZW*****************************
后续提供给Dify调用RAGFlow使用
- 记录RAGFlow知识库ID
步骤 4: 记录 API 端点信息
- RAGFlow API 基地址(Base URL):通常是
http://RAGFlow服务器IP:8580
- 检索接口路径:
/api/v1/retrieve
- 完整的检索端点 URL:
http://RAGFlow服务器IP:8580/api/v1/retrieve
- RAGFlow知识库ID:581af2b2889a11f082420242ac1f0006
第二部分:Dify 端配置
现在,在 Dify 中创建一个应用,并通过工作流调用 RAGFlow知识库。
步骤 1: 在 Dify 中创建一个外部知识库
- 创建外部知识库API
- 召回测试
API Endpoint:
http://RAGFlow服务器IP:8580/api/v1/dify
API KEY:RAGFlow提供的API KEY
步骤 2: 在 Dify 中创建新应用
- 登录你的 Dify 控制台。
- 点击“创建新应用”,选择“ChatFlow”
步骤 3: 构建工作流
进入应用的工作流编辑界面,按以下顺序添加和配置节点:
节点 1: 开始
- 拖入一个 “开始” 节点。它代表了用户输入的提问。
节点 2: 知识检索
- 拖入一个 “知识检索” 节点。设置知识库。
节点 3: LLM(大语言模型)
- 拖入一个 “LLM” 节点。
- 设计系统提示词
- 可以根据需要调整温度和最大生成长度等参数。
你是一个专业的问答助手。请严格根据<知识库内容>来回答用户的问题。# 知识库内容:
{{#context#}}# 用户问题:
{{#sys.query#}}# 回答要求:
1. **精准忠实**:答案必须完全源自上述<知识库内容>。严禁编造、演绎或使用外部知识。
2. **清晰有条理**:组织你的答案,使其逻辑清晰、易于理解。可以使用列表、分点等方式。
3. **引用溯源**:如果<知识库内容>中包含了明确的来源(如文件名、URL、章节名),请在答案末尾以“来源:[此处填写来源]”的格式注明。
4. **不确定性处理**:如果<知识库内容>中**完全没有**与用户问题相关的信息,请明确告知用户“根据现有资料,我无法找到相关问题答案。”
5. **完整性**:尽量提供完整的信息,如果问题涉及多个方面,请覆盖所有方面。现在,请开始回答。
节点 4: 直接回复
6. 拖入一个 “直接回复” 节点。
7. 将其连接到“LLM”节点之后。这个节点会将 LLM 生成的最终答案返回给用户。
测试:
关键注意事项
- 使用 Docker 网络隔离:为每个项目创建独立的网络
- 使用环境变量文件:为每个项目创建独立的
.env
文件 - 启动RAGFlow与Dify:
# 在 Dify 目录中,使用项目名 "dify"
cd /dify1.8/dify-1.8.0/docker
docker compose -p dify down
docker compose -p dify up -d# 在 RAGFlow 目录中,使用项目名 "ragflow"
cd /path/to/ragflow
docker compose -p ragflow down
docker compose -p ragflow up -d