支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Open WebUI中调用RAGFlow的聊天机器人——适合构建个人和企业级知识问答助手

发布日期:2025-04-14 17:38:17 浏览次数: 1582 作者:键盘上的茶歇
推荐语

Open WebUI与RAGFlow的结合,打造高效知识问答助手。
核心内容:
1. Open WebUI和RAGFlow的简介及其优势
2. 通过Pipeline集成两者,提升问答准确性
3. RAGFlow的多格式支持和高级检索功能

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

 

众所周知,Open WebUI 是一个很好的大模型前端界面,阿里的 Qwen 界面就是基于这个开发的(盲猜)。事实上,在使用 Open WebUI 很久之后,我发现通过集成 RAGFlow 这个优秀的 RAG(检索增强生成)框架,可以显著提升文档检索和问答的准确性。本文将详细介绍 Open WebUI 和 RAGFlow,并展示如何通过 Pipeline 将两者连接起来,实现高效的 RAG 检索效果。

为什么要把RAGFlow加到Open WebUI里?

Open WebUI是个超级漂亮的AI前端界面,用起来特别顺手,我自己用了好一阵子,感觉它就像个简易版的ChatGPT。而RAGFlow呢,是个专门搞文档检索的利器,能从PDF、Word甚至网页里找出你想要的信息。把它们俩凑一块儿,你就能一边享受Open WebUI的美观操作,一边用RAGFlow快速找到文档里的关键内容,问答精准度蹭蹭往上涨。不管你是想处理复杂文档,还是让聊天更有料,这套方案都挺值得试试的。

先看效果:

带参考内容哦!还是流式生成的哦!

1. Open WebUI 简介

Open WebUI 是一个开源的、自托管的 AI 交互平台,以其用户友好的界面和强大的功能而著称。它的设计灵感来源于 ChatGPT,界面直观且易于操作,支持离线运行,非常适合希望本地化部署大模型的用户。Open WebUI 的可扩展性是其一大亮点,它能够无缝集成多种大型语言模型(LLM)运行器,例如 Ollama 和 OpenAI 兼容的 API。

主要特点:

  • • 多模型支持:支持多种 LLM,用户可以根据需求选择不同的模型进行交互。
  • • 直观界面:界面设计简洁美观,操作流畅,用户体验极佳。
  • • 离线运行:支持自托管,无需依赖云服务,数据安全更有保障。
  • • 可扩展性:通过 Pipelines 框架,用户可以轻松添加自定义功能。

Open WebUI 的安装也非常简单,也可以直接pip安装,还方便二次开发。

通常可以通过 Docker 或 Kubernetes 快速部署。例如,使用以下命令即可启动:

docker run -d -p 3000:8080 --name open-webui openwebui/open-webui:main

一个示例页面是这样的:

2. RAGFlow 简介

RAGFlow 是一个开源的 RAG(Retrieval-Augmented Generation,检索增强生成)引擎,专注于深度文档理解和高效问答生成。它能够处理多种复杂格式的数据,包括 Word、PDF 和网页等,并通过一系列高级功能提升检索的准确性。RAGFlow 的设计目标是为用户提供简化的 RAG 工作流,结合 LLM 实现精准的问答能力。

主要特点:

  • • 多格式支持:兼容 Word、PDF、网页等多种文档类型。
  • • 模板化切块:通过模板将文档分块,便于检索和管理。
  • • 知识图谱:利用知识图谱增强文档理解能力。
  • • 关键词抽取:自动提取关键信息,提升检索效率。
  • • 可视化溯源:提供可视化工具,帮助用户追踪回答来源。
  • • 灵活部署:支持 Docker 部署,兼容多种 LLM 和嵌入模型。

RAGFlow 的部署同样简单,以 Docker 为例:

docker run -d -p 5000:5000 infiniflow/ragflow:latest

一个示例页面是这样的:


3. 通过 Pipeline 连接 Open WebUI 和 RAGFlow

要将 RAGFlow 的强大检索能力集成到 Open WebUI 中,我们需要借助 Open WebUI 的 Pipelines 功能。Pipelines 是一个插件框架,允许用户在不修改核心代码的情况下扩展 Open WebUI 的功能。通过一个自定义 Pipeline 脚本,我们可以让 Open WebUI 调用 RAGFlow 进行检索,并将结果作为上下文提供给 LLM,从而生成更准确的回答。

3.1 配置前提

在开始之前,确保以下条件已满足:

  • • Open WebUI 已安装并运行。
  • • RAGFlow 已安装并运行。
  • • Docker 环境可用(用于运行 Pipelines)。

3.2 安装 Pipelines

Pipelines 可以通过 Docker 部署,运行以下命令启动 Pipelines 服务器:

`docker run -d -p 9099:9099 --add-host=host.docker.internal:host-gateway -v pipelines:/app/pipelines --name pipelines --restart always ghcr.io/open-webui/pipelines:main`

此命令将 Pipelines 容器运行在 9099 端口,并挂载一个本地目录用于存储 Pipeline 脚本。

3.3 配置 Open WebUI 连接 Pipelines

  1. 1. 打开 Open WebUI,进入 Admin Panel > Settings > Connections
  2. 2. 点击 + 添加新连接。
  3. 3. 将 API URL 设置为 http://localhost:9099(若在 Docker 中运行 Open WebUI,则使用 http://host.docker.internal:9099)。
  4. 4. API 密钥设置为 0p3n-w3bu!。
  5. 5. 保存后,API Base URL 将显示带有 "Pipelines" 图标的连接,表示配置成功。

如下界面:


3.4 上传Pipelines脚本并配置参数

打开Pipelines并上传写好的py文件,配置四个参数即可使用:


3.5 在聊天中使用

配置完成后,在 Open WebUI 的聊天界面中选择使用 RAGFlow Pipeline 的模型。上传文档或输入查询时,Open WebUI 将通过 Pipeline 调用 RAGFlow 检索相关内容,并将结果传递给 LLM 生成回答。实际测试和直接使用RAGFlow差不多,速度嘎嘎快。


我们实际的问题内容召回很高,实际的知识库内容为:

如何实现二叉树的中序遍历?
‍```python
classNode:
    def__init__(self, value):
        self.left = None
        self.right = None
        self.value = value

definorder_traversal(root):
    res = []
    defhelper(node):
        if node:
            helper(node.left)
            res.append(node.value)
            helper(node.right)
    helper(root)
    return res

# 构建测试树
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.right = Node(4)
print(inorder_traversal(root))  # [2,4,1,3]
‍```

可以看到,实际的召回效果简直棒极了!


4. 总结

通过 Pipeline 将 RAGFlow 集成到 Open WebUI 中,用户可以在一个美观且易用的界面中,充分利用 RAGFlow 的强大检索能力。这种组合不仅提升了问答的精准度,还为开发者提供了灵活的定制空间。无论你是想处理复杂文档还是提升聊天体验,这套方案都值得一试。把RAGFlow接到Open WebUI里,简直是懒人和效率控的福音。界面好看,检索给力,操作还简单,试过一次你就知道有多香了。

我的python脚本在下面了,有需求自取,复制内容,保存为py文件上传即可。

 

from typing import ListUnion, Generator, Iterator, Optional
from pydantic import BaseModel
import requests
import json

class Pipeline:
    class Valves(BaseModel):
        API_KEY: str
        AGENT_ID: str
        HOST: str
        PORT: str


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询