返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

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

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 17:58 |阅读模式 打印 上一主题 下一主题

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">众所周知,Open WebUI 是一个很好的大模型前端界面,阿里的 Qwen 界面就是基于这个开发的(盲猜)。事实上,在使用 Open WebUI 很久之后,我发现通过集成 RAGFlow 这个优秀的 RAG(检索增强生成)框架,可以显著提升文档检索和问答的准确性。本文将详细介绍 Open WebUI 和 RAGFlow,并展示如何通过 Pipeline 将两者连接起来,实现高效的 RAG 检索效果。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(0, 152, 116);">为什么要把RAGFlow加到Open WebUI里?

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

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">先看效果:

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">带参考内容哦!还是流式生成的哦!

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0.3em 1em;color: rgb(255, 255, 255);background: rgb(0, 152, 116);border-radius: 8px;box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px;">1. Open WebUI 简介

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">Open WebUI 是一个开源的、自托管的 AI 交互平台,以其用户友好的界面和强大的功能而著称。它的设计灵感来源于 ChatGPT,界面直观且易于操作,支持离线运行,非常适合希望本地化部署大模型的用户。Open WebUI 的可扩展性是其一大亮点,它能够无缝集成多种大型语言模型(LLM)运行器,例如 Ollama 和 OpenAI 兼容的 API。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 12px;color: rgb(63, 63, 63);">主要特点:

    ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;color: rgb(63, 63, 63);" class="list-paddingleft-1">
  • ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;text-indent: -1em;display: block;margin: 0.5em 8px;color: rgb(63, 63, 63);">
    多模型支持:支持多种 LLM,用户可以根据需求选择不同的模型进行交互。
  • 直观界面:界面设计简洁美观,操作流畅,用户体验极佳。
  • 离线运行:支持自托管,无需依赖云服务,数据安全更有保障。
  • 可扩展性:通过 Pipelines 框架,用户可以轻松添加自定义功能。

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

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

dockerrun-d-p3000:8080--nameopen-webuiopenwebui/open-webui:main

一个示例页面是这样的:

2. RAGFlow 简介

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

主要特点:

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

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

dockerrun-d-p5000:5000infiniflow/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 服务器:

`dockerrun-d-p9099:9099--add-host=host.docker.internal:host-gateway-vpipelines:/app/pipelines--namepipelines--restartalwaysghcr.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):
ifnode:
helper(node.left)
res.append(node.value)
helper(node.right)
helper(root)
returnres

# 构建测试树
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文件上传即可。

fromtypingimportList,Union, Generator, Iterator,Optional
frompydanticimportBaseModel
importrequests
importjson

classPipeline:
classValves(BaseModel):
API_KEY:str
AGENT_ID:str
HOST:str
PORT:str


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ