OpenWebUI,RAG+外部知识库+AI写文的开源应用

引言

自从去年AI火起来之后,很多人便热衷于寻找适合自用的AI开源项目,把各家大模型API接入到自己的AI程序里,便可以通过AI辅助完成一系列日常任务,比如内容翻译/润色/总结/撰写、格式转换、数据分类、代码分析、角色扮演等等。

一般情况下,大模型依靠自身训练数据便能够完成的任务质量偏高,像翻译总结、格式转换之类,市面上所有的AI程序基本都能够满足这一点需求;但是需要结合外部资料/超长上文信息/实时信息等才能够更好完成任务的场景,比如撰写热点文章、写小说、写汇报材料等等,涉及到知识空白,所以大模型在不借助外部资料的时候,给出的任务结果就显得非常逊色,甚至错误百出。

市面上带有外部知识库功能的开源AI程序本身也不多,已知的有LibreChat、AnythingLLM、OpenWebUI、Cherry Studio等,因本文主要讲解ChatAI类应用,并不涉及智能体问题,所以像dify这种不列在其中,此类程序无一例外都是借助于检索增强生成RAG(Retrieval Augmented Generation)技术,实现了外部知识库的挂载,从而增强AI的任务完成品质。

目前看来,OpenWebUI是这几个带有RAG结合项目中实现功能最为丰富的开源AI项目,大部分RAG+AI结合的项目,仅实现了文件上传对话的基本功能,这只能满足一次性文件嵌入使用的需求。OpenWebUI除此之外,还进一步利用RAG,开发了类ChatGPT官网GPTs那样的“自定义模型”功能,自定义模型中嵌入的外部知识库,是可以动态更新的,如此以来让AI按照人类思路分步骤(1、定选题;2、查资料;3、列大纲;4、写正文)撰写材料成为可能。

项目介绍

Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线操作。它支持多种 LLM 运行器,包括 Ollama 和兼容 OpenAI 的 API。

项目地址:

https://github.com/open-webui/open-webui

核心功能:

  • • 自定义构建新模型;

  • • 自定义知识库、工具、函数;

  • • 支持OpenAI API兼容格式;

  • • 集成RAG和基于RAG的网络检索;

  • • Markdown和Latex渲染支持;

  • • 支持语音、绘图等;

  • • 模型竞技场;

  • • 自定义用户角色和权限(RBAC);

  • • 响应式设计,支持PWA;

  • • 多语言支持;

该项目已在Github斩获了4.5万stars,网上关于该项目的讨论很多,感兴趣可以自行查询谷歌。

OpenWebUI界面

安装与设置

1、安装前准备:

根据官方文档完成本项目的本地安装或远程安装,如需远程安装需准备一台服务器和一个域名(最好)。

  • • 服务器:
    由于受网络管制影响,Docker在国内拉取镜像可行性较低,所以最好购买一台香港或者海外服务器,非常不推荐购买国内服务器(国内服务器处处都是坑!)

  • • 域名:
    同样不推荐在国内域名服务商那里购买域名,因为涉及到备案或者其它可能发生的不可描述“违规”问题,国内域名服务商会有几率不留情面的将你的域名禁掉,无法解析和迁移。当然如果你认为无所谓,则无需考虑上述建议,毕竟正常情况下,国内域名服务商的解析速度的确更快一些。

如果不知道如何找到合适服务器商和域名服务商,可见文末推荐。

2、安装宝塔与Docker:

从宝塔官网找到Linux面板命令说明,并按照提示安装宝塔。

宝塔Linux命令入口:

https://www.bt.cn/new/btcode.html

3、终端命令启动:

在执行命令之前,要放行端口3000

`docker run -d -p 3000:8080 -e OPENAI_API_KEY=your_secret_key -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main`  

4、OpenAI设置

Docker容器构建完成后,你通过服务器IP+3000端口就可以成功访问程序了。首次打开,注册即是系统管理员,后续再注册用户均受管理员设置的权限控制。

设置外部链接,接入大模型API。

设置OpenAI的API

本文暂不讨论使用Ollama本地大模型,仅使用了OpenAI的API。其中,OpenAI API要填写对应的Base url 和 Key,注意此处要增加后缀/v1,如果你是从聚合AI>>(https://juheai.qyiwl.cn)购买的API,此处接口应该填写:

`https://api.juheai.top/v1`  

填写校验通过后,系统会自动识别到所有可用模型。

5、绑定域名

如果你希望系统更加稳定,建议完成该步骤。通过宝塔面板->网站->反向代理实现绑定域名,并添加免费的SSL证书。

6、安装Pipeline

如果你需要完整的使用OpenWebUI中的工具和函数,还需要安装此项目,如此以来就可以实现诸如以下的功能:

  • • 自定义RAG

  • • 各种函数调用

  • • 实施监控和分析消息

  • • 有害信息过滤

  • • 速率限制

  • • …

安装仅需在服务器执行以下命令(首先开启9099端口):

`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`  

然后继续完成域名的绑定操作,比如你可以绑定到pipeline.example.com。

最后将部署好的域名配置到OpenWebUI中即可,对应的API密码在官方文档中已给出:0p3n-w3bu!

7、文档设置

如果需要使用RAG文档识别功能则需要配置此项,设置和提示词见下:

``提示词:   **Generate Response to User Query****Step 1: Parse Context Information**Extract and utilize relevant knowledge from the provided context within `<context></context>` XML tags.**Step 2: Analyze User Query**Carefully read and comprehend the user's query, pinpointing the key concepts, entities, and intent behind the question.**Step 3: Determine Response**If the answer to the user's query can be directly inferred from the context information, provide a concise and accurate response in the same language as the user's query.**Step 4: Handle Uncertainty**If the answer is not clear, ask the user for clarification to ensure an accurate response.**Step 5: Avoid Context Attribution**When formulating your response, do not indicate that the information was derived from the context.**Step 6: Respond in User's Language**Maintain consistency by ensuring the response is in the same language as the user's query.**Step 7: Provide Response**Generate a clear, concise, and informative response to the user's query, adhering to the guidelines outlined above.User Query: [query]<context>[context]</context>`` 

至此,主要设置完毕,基本可以使用OpenWebUI的完整功能了。

功能

1、基本功能

OpenWebUI的基本功能很容易上手,此处不再展开赘述,其中包括:

  • • 对话

  • • 画图

  • • 联网查询

  • • 语音对话

  • • Artifacts

  • • 对话参数

  • • 界面设置

  • • 分享功能

  • • 记忆功能

  • • 归档功能

  • • 游乐场

  • • 聊天分类

  • • 文档对话

2、自定义模型

自定义模型是将特定提示词、外部资料、特定功能集成在一起的AI组合模型,相较于原生API通用模型,它会更加定向于某个专长,从而更好的帮助用户解决实际问题。自定义模型并不是真正意义上的训练模型,只是给基础模型做了一部分能力集成,如果原来你接触过GPTs将会非常容易理解,比如Python学习专家、情感分析师、日语翻译官等等。

例如我们创建一个企业新员工培训顾问,将该企业内部的新员工培训手册挂载到该模型中,并通过提示词来定义该模型角色信息:

第一步:创建一个知识库,并挂载新员工手册文件内容。

我们准备一个word文件,其中包含了以下3条内容作为演示:

1、 上班睡觉扣1000元。
2、 中午吃饭时间是11:30 ~ 13:00。
3、 每周五下班前要提交本周日报。

第二步,创建自定义模型

创建自定义模型,模型任意选择一个chat模型,并挂载刚才上传的知识库。

系统提示词部分,可以这样写:

你是xx企业的新员工培训顾问,请根据新员工问题,结合知识库并准确回答新员工的问题。因为新员工手册内容较为严谨,不能胡乱回答,请对于知识库里没有的知识,一定要回答“尚未学习,请联系管理员反馈问题”。

创建后我们尝试问他几个问题,看看效果图(说明它确实学习了新员工手册中的内容了):

我们还可以上传pdf带图文件或扫描文件,系统会借用视觉模型能力将文件中图片部分转化为对应的文字描述。

3、工具与函数

我们可以从OpenWebUI的官方社区找到很多用户分享的工具和函数,找到最适合自己的引入系统使用即可,下面我们以速率限制函数Rate Limit Filter为例,演示一下配置步骤:

新建一个函数:

4、模型竞技场

因为公开评估机构对于模型的评估存在一定的偏差,也并不一定符合所有的差异化个体用户,OpenWebUI提供的模型竞技场弥补这一点,主要是用来快速帮助差异化个体评估模型的表现,从而让你能精准选出符合你要求和习惯的最佳模型。

评估方式分为普通评估(公开模型名称)和竞技场评估(隐藏模型名称),每次对话可以同时开启两个或多个模型进行回答,用户给出模型答案点赞或点踩,结果会计入模型竞技场排名。

模型竞技场

5、团队使用

OpenWebUI非常适合中小型团队共同使用,它提供了权限系统,可以区分管理员和普通用户,你可以为你的团队设定只有团队成员可以审核加入,避免过多的外界打扰。

你只需要把你的url发给团队成员,他经过简单的填写注册信息提交,你就能够从后台收到待审核信息。

用户权限

你还可以决定你的团队成员可以用哪些白名单模型,也可以创建团队可用的自定义模型,同时嵌入团队内部知识库,让模型变得更加符合企业使用要求。更多基于团队使用的功能请自行发掘。

总结

总体来看,功能丰富和高可扩展性是OpenWebUI最大的优点,尤其是对RAG的支持,用户已经可以自定义各种选项来获得更好的RAG识别结果,这是领先于其它同类项目的特点之一。另外,开源项目仓库更新也非常活跃,根据roadmap描述后续还有更多好玩有趣的功能陆续上线。

不足方面,可能是由于采用了轻量数据库的原因,加之过于丰富的功能,对服务器性能要求略高,并且OpenWebUI用久了或者团队成员较多时,打卡速度可能会较慢,大模型回答响应速度也会偶发卡顿现象。建议此项目私人部署使用或3~5个成员共享使用,不要加入太多的用户进来即可。相信后续项目团队会不断优化访问速度和性能,持续迭代使项目更优秀。

服务器推荐:

坤云香港CTG服务器aff:

https://www.ikunyun.cn/aff/DMWQGSOC

建议购买4-4(44元/月)及以上配置,新用户专享95折优惠券,下单时填写:juheai

优惠码

Fiberstate美国服务器aff:

https://billing.fiberstate.com/aff.php?aff=148

如果是团队使用可以考虑,性价比很高,建议买49.95刀/月档物理机(服务器比较稀缺,需要抢购)。

Namesilo域名aff:

https://www.namesilo.com/domain/search-domains?rid=97ba186te


如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

在这里插入图片描述
👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)
<think>好的,我现在需要帮用户找一个端到端的开源项目,同时支持自动语音识别(ASR)、大型语言模型部署和基于检索增强生成(RAG)的知识库功能。首先,我得理清楚用户的需求,确保理解正确。用户想要的是一个整合了这三个模块的开源项目,而不是分别使用不同的工具然后自己集成。这意味着我需要寻找一个综合性的项目,可能是一个框架或者平台,能够处理语音到本,接着用大语言模型处理本,再通过RAG知识库中检索信息生成回答。 接下来,我应该考虑现有的开源项目中有没有同时涵盖这些功能的。ASR方面比较有名的有DeepSpeech、Whisper等;大语言模型部署常见的有Hugging Face的Transformers、LangChain;RAG方面可能有LlamaIndex、Haystack之类的。但用户需要的是端到端的解决方案,可能需要这些组件已经集成在一起的项目。 可能有一些项目在构建语音助手或者对话系统时会用到这些技术。比如,Hugging Face的生态系统可能通过整合不同库来实现。或者,社区中可能有结合Whisper、LangChain和LlamaIndex的项目。例如,使用Whisper处理语音输入,转换成本后,用LangChain管理LLM的流程,再通过LlamaIndex实现RAG。虽然这可能需要一定的集成工作,但或许有现成的模板或示例。 另外,用户提到的“端到端”可能意味着项目需要从语音输入到最终输出(如回答)的完整流程,中间各环节无缝衔接。因此,我需要寻找是否有项目将这些步骤整合到一个框架中。可能需要查看GitHub上的相关仓库,用关键词如“end-to-end ASR LLM RAG”搜索。 同时,考虑到用户需要开源项目,可能需要推荐一些热门的或者社区支持较好的项目。例如,NVIDIA的NeMo可能提供ASR和LLM的整合,但不确定是否包含RAG。还有,项目如VoiceGPT,或者基于ChatGPT的语音应用,但需要检查是否开源。 另外,RAG的实现通常需要向量数据库,比如FAISS、Milvus等,所以项目是否集成了这些也是需要考虑的。可能的架构是ASR转本,LLM处理生成中间结果,再通过RAG知识库检索相关信息,最后生成回答。这样的流程可能需要多个组件协同工作。 可能还需要考虑项目的活跃度、档是否完善、社区支持情况。如果直接没有完全符合的项目,可能需要建议用户结合几个工具自行搭建,并推荐相关的教程或示例。比如,使用Whisper + LangChain + FAISS的组合,通过编代码将这些模块连接起来。 不过用户明确要求的是端到端的开源项目,所以尽量找现成的解决方案。例如,可能有项目叫做“VoiceAssistant”或者“ChatWithDocs”之类的,整合了这些功能。或者,Hugging Face的Spaces可能有这样的演示项目,但需要检查是否开源和可部署。 总结可能的步骤:1. 搜索GitHub和相关平台寻找整合ASR、LLM、RAG的项目。2. 评估这些项目是否符合用户需求。3. 推荐最接近的项目,并说明可能需要额外配置的部分。4. 如果没有完全符合的,建议组合使用现有工具并提供示例。 现在需要验证这些思路。例如,Hugging Face的Transformers库支持ASR(Whisper),同时有Pipeline来处理LLM,而RAG可能需要结合Retrieval组件。但需要查看是否有示例项目将这些结合起来。另外,LangChain框架支持连接多种组件,可能包括ASR、LLM和检索,所以基于LangChain构建的项目可能符合要求。 比如,LangChain的档中可能有语音输入处理,结合检索和生成。或者社区中有这样的实现。因此,推荐用户使用LangChain作为基础框架,结合Whisper、Transformers和FAISS等库来构建端到端系统,并提供相关链接或教程。 此外,项目如privateGPT,虽然主要面向档问答,但可以扩展添加ASR功能。用户可能需要将语音输入转换为本后,输入到privateGPT的流程中。这可能是一个可行的方案,尽管需要一定的集成工作。 因此,最终的推荐可能包括几个部分:1. 使用Whisper处理ASR;2. 使用LangChain管理LLM和RAG流程;3. 使用FAISS或类似作为向量数据库。并提供相关的开源项目链接和教程,帮助用户搭建这样的系统。</think>### 端到端开源项目推荐 您需要的端到端开源项目需整合 **自动语音识别(ASR)**、**大型语言模型(LLM)部署** 和 **检索增强生成(RAG)** 功能。以下是符合需求的具体方案和工具链: --- #### 1. **开源工具链整合方案** 若暂无完全端到端的“一体化”项目,可通过以下开源工具组合实现完整流程: - **ASR模块**:使用 OpenAI 开源的 **Whisper** Whisper 支持多语言语音识别,准确率高且易于部署。例如: ```python import whisper model = whisper.load_model("base") result = model.transcribe("audio.mp3") text = result["text"] ``` - **LLM与RAG模块**:使用 **LangChain + LlamaIndex** LangChain 提供 LLM 流程管理,LlamaIndex 专精于 RAG 优化,支持从知识库检索增强生成。 示例代码: ```python from langchain.llms import HuggingFacePipeline from llama_index import VectorStoreIndex, SimpleDirectoryReader # 加载知识库档 documents = SimpleDirectoryReader("data").load_data() index = VectorStoreIndex.from_documents(documents) # 构建RAG查询引擎 query_engine = index.as_query_engine() response = query_engine.query("用户问题") ``` - **向量数据库**:集成 **FAISS** 或 **Milvus** 用于高效存储和检索知识库的嵌入向量。 **优点**:灵活性高,可定制性强;**缺点**:需自行编模块衔接代码。 --- #### 2. **社区热门项目参考** - **privateGPT** 项目链接:[https://github.com/imartinez/privateGPT](https://github.com/imartinez/privateGPT) 核心功能:支持本地部署的档问答系统,基于 LLM 和 RAG。 **扩展建议**:可添加 Whisper 模块将语音输入转为本,再接入 privateGPT 的问答流程。 - **Voice Assistant Projects** 部分开源语音助手(如 **Rhasspy**、**Mycroft**)支持插件扩展,可通过添加 RAG 模块实现知识库增强。 --- #### 3. **企业级框架** - **NVIDIA NeMo** 支持 ASR、LLM 训练与部署,结合 **Milvus** 可构建 RAG 系统[^1]。 特点:高性能计算优化,适合大规模部署。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值