使用MaxKB搭建知识库问答体系并接入个人网站(halo)

[复制链接]
发表于 2025-12-23 15:50:38 | 显示全部楼层 |阅读模式
首发地点(接待各人访问):使用MaxKB搭建知识库问答体系并接入个人网站

媒介

OpenAI推出ChatGPT到现在,大模子已经排泄到各行各业,大模子也渐渐趋于布衣化;从最开始对其明确、天生、强大的知识积聚的惊叹,到现在盼望大模子能更加的易用、精确以致是在各个生产环节起到作用。不管是企业还是个人,对大模子的需求都优劣常茂盛且丰富的;
大模子在广义上是指参数数目大、布局复杂的深度学习模子,具备涌现本领、通用本领,并可以大概处理处罚复杂的鄙俚使命,如自然语言处理处罚、图像辨认等。它包罗大语言模子、大视觉模子、大语音模子等;而大语言模子(Large Language Model,简称 LLM)是现在最热门、应用最广泛的技能;
而在大语言模子不停投入市场让更多的用户使用的过程众,大语言模子本身的题目也暴袒露来了;此中最大的题目就是幻觉,所谓幻觉,就是大语言模子提供的答案看似很公道,但实际上就是在颠三倒四。导致大模子幻觉的缘故因由有许多种,要讨论的话也并非三言两语可以竣事的,以是这里不做过多的拓展。简单明确一下,大模子幻觉大多数的情况就是知识数据题目,失真、边界等题目都大概率会导致幻觉。
针对知识失真、边界导致幻觉的题目,通常是两种方式,一种是微调,别的一种就是检索增强天生(Retrieval Augmented Generation,RAG)
RAG是一种团结检索和天生技能的模子。它通过引用外部知识库的信息来天生答案或内容,具有较强的可表明性和定制本领,实用于问答体系、文档天生、智能助手等多个自然语言处理处罚使命中。RAG模子的上风在于通用性强、可实现即时的知识更新,以及通过端到端评估方法提供更高效和精准的信息服务1。
个人的明确就是,RAG 就是给大模子外貌一个知识库,在用大模子的过程中,用知识库里的知识来辅助大模子答复用户题目;背面操持专门纪录一下个人对干系知识的明确,以是这里也不做过多的扩展;
大语言模子和RAG的团结,无论是对于企业还是个人都是有实质性的增效的。由于简单从本钱和结果综合来看,RAG绝对是比微调更好的选择;
而RAG发展到现在,技能上的门槛已经低落许多了,干系的开源项目特别多,比方dify、FastGPT、QAnything以及本文主角MaxKB等;
起首说下我选MaxKB的缘故因由,说实话,我还没有试过其他的产物。我使用RAG紧张需求就是想放到我的博客网站上,能快速定位到干系的汗青知识,提升体验;
MaxKB开箱即用,支持快速嵌入到第三方业务体系的特性可以说直接腾飞,下面进入正文。
MaxKB简介

官方先容

官网地点:https://maxkb.cn/


  • 产物先容
           MaxKB = Max Knowledge Base,是一款基于大语言模子和 RAG 的开源知识库问答体系,广泛应用于企业内部知识库、客户服务、学术研究与辅导等场景。作为一款专注于知识库问答场景的软件产物,MaxKB 可以大概为企业的智能化进程注入新的动力,助力企业实现“提质增效”的目标。在知识库管理方面,MaxKB 资助企业实现知识收罗、知识入库、知识库构建的全流程主动化;在场景化智能搜索方面,MaxKB 可以大概剖析用户输入的题目并匹配检索知识库;在复兴精确性方面,MaxKB 采取了成熟的 LLM + RAG 技能,可以大概最大限度地低落大模子幻觉对知识搜索精确性的干扰,进步企业对业务数据的分类与召回本领;安全性方面,MaxKB 支持本地摆设和调用本地大模子,有用管控企业使用知识库时越级访问的风险,以及公有模子在数据传输方面大概存在的安全隐患。借助 MaxKB,企业用户可以快速上线业务 AI 助手,将天生式 AI 本领应用于业务数据管理、内部资料查询、线上客户服务等范畴,优化业务服务流程并切实提升用户体验2。
       

  • 产物上风

    • 开箱即用
      支持直接上传文档 / 主动爬取在线文档,支持文本主动拆分、向量化和 RAG(检索增强天生),有用淘汰大模子幻觉,智能问答交互体验好;
    • 快速接入
      支持零编码嵌入到第三方业务体系,以及快速接入企业微信、钉钉、飞书、公众号等应用,让已有体系快速拥有智能问答本领,进步用户满意度;
    • 机动编排
      内置强大的工作流引擎和函数库,支持编排 AI 工作过程,满意复杂业务场景下的需求;
    • 模子中立
      支持对接各种大模子,包罗本地私有大模子(Llama 3 / Qwen 2 等)、国内公共大模子(通义千问 / 腾讯混元 / 字节豆包 / 百度千帆 / 智谱 AI / Kimi 等)和国外公共大模子(OpenAI / Claude / Gemini 等)2。
       
架构

我们紧张看一眼这个技能蹊径,就是典范的RAG流程:

摆设与集成

安装摆设



  • 硬件要求:

    • 操纵体系:Ubuntu 22.04 / CentOS 7.6 64 位体系
    • CPU/内存:2C/4GB 以上
    • 磁盘空间:100GB
       
​ 怎么说呢,就是这个硬件要跑起来就会比力卡,在向量化文本大概问答的时间都会比力卡,以是发起硬件再升一升会更好点;


  • 安装摆设:
           直接看官方文档吧,很简单:https://maxkb.cn/docs/installation/offline_installtion/
创建应用

紧张的使用教程仍然是看官网就行,官网的文档很详细;
这里只做简单的纪录;


  • 起首接入大模子
每个模子怎么接入的方式在官方文档也有(再夸一夸这个文档,真的很友爱);
我这里是用的星火lite模子,紧张有两个缘故因由,起首我不须要很好的大模子,能明确我的知识进一步润色后答复即可,也就是有根本的本领就行;其次就是星火这个模子免费(很妙);



  • 创建个人的知识库
如图所示,这里可以创建本地库也可以创建web网站知识库;web站点的知识库,MaxKB会主动的爬取网站下面的文本数据;
由于博客网站有许多页面的信息对于知识问答来讲都是没用的,以致会引起毛病,以是我这里就创建的本地知识库,然后把网站上的文章手动导进来的;
这个方式很笨,由于更新文章后,知识库不能主动更新,背面再琢磨吧;
固然,我的博客是使用halo搭建的,halo中是有一个付费插件可以实现主动更新和集成的;
照现在的需求来看,是不消投资的,以是就不弄插件了,简单集成下先;

创建后要等候向量化完成:



  • 创建一个应用
创建应用,内里添有两个选型,一个是简单设置一个是高级编排;
这里就不得不说,这个产物迭代的速率还是很快的,上一次体验就没编排,现在连workflow都加进来了,很不错;
我不须要通过workflow来编排什么使命,就是简单的问答;
以是选择简单设置即可;



  • 设置应用
点击应用卡片,进入设置该应用关联的模子、知识库和干系提示语;

设置好后,就可以在右侧的调试地区试一下了;可以看到召回的文档片断,很强大;
到这里,根本就完成了应用的搭建了;

集成到第三方应用(干货)

集成可不要太简单,这也是MaxKB友爱的地方,直接提供了页面嵌入和浮窗嵌入的代码,极速嵌入;不须要再进一步集成接口和开辟了;
固然它也提供了api接口,你可以通过接口接入其他应用;

集成到halo;
如果你选择和我一样直接全局注入浮窗模式的代码

那就得看你是用的是啥主题了,我用的主题就加载不乐成;
我用hao主题,直接没体现;

然后切换一个主题试一下:
诶!好了,神奇不!



  • 找缘故因由
最开始我以为是掩蔽的缘故因由,就直接看下元素:
ok代码注入没题目

看一下注入的js的源代码(省略不紧张部分):
最紧张的着实就是initMaxkb()、initMaxkbStyle(root)、embedChatbot(),然后在initMaxkb()中通过document.body.appendChild(maxkb)把浮窗嵌入到body标签的最背面;以是我们看一眼body标签
  1. const guideHtml=`...
  2. `
  3. const chatButtonHtml=
  4. `...`
  5. const getChatContainerHtml=(protocol,host,token,query)=>{...}
  6. const initGuide=(root)=>{...
  7. }
  8. const initChat=(root)=>{...
  9. }
  10. /**
  11. * 第一次进来的引导提示
  12. */
  13. function initMaxkb(){
  14.   const maxkb=document.createElement('div')
  15.   const root=document.createElement('div')
  16.   root.id="maxkb"
  17.   initMaxkbStyle(maxkb)
  18.   maxkb.appendChild(root)
  19.   document.body.appendChild(maxkb)
  20.   const maxkbMaskTip=localStorage.getItem('maxkbMaskTip')
  21.   if(maxkbMaskTip==null && true){
  22.     initGuide(root)
  23.   }
  24.   initChat(root)
  25. }
  26. // 初始化全局样式
  27. function initMaxkbStyle(root){
  28.   style=document.createElement('style')
  29.   style.type='text/css'
  30.   style.innerText=  `......`
  31.   root.appendChild(style)
  32. }
  33. function embedChatbot() {
  34.   white_list_str=''
  35.   white_list=white_list_str.split(',')
  36.   if (true&&(false?white_list.includes(window.location.origin):true)) {
  37.     // 初始化maxkb智能小助手
  38.     initMaxkb()
  39.   } else console.error('invalid parameter')
  40. }
  41. window.onload = embedChatbot
复制代码
OK,找了半天没找到:

那简单了,排查一下是哪个函数出题目了;
直接把js代码下载下来,嵌入源代码:

排查方法就是在函数内里console.log;
末了发现是window.onload 变乱没实验!
   详细缘故因由着实我也不知道,反正找到缘故因由就好办了,改下方法硬搞!
  (但是下面这个方法也不是全部端,全部欣赏器适配,如果你有更好的方法接待批评探究!)
  使用 DOMContentLoaded 变乱取代 load 变乱:
   DOMContentLoaded 变乱是欣赏器提供的 DOM(文档对象模子)变乱之一,它在欣赏器加载并剖析完全部HTML文档后触发,但不必等候样式表、图像和子框架完成加载。这意味着在 DOMContentLoaded 变乱触发时,DOM树已经创建,可以对DOM举行操纵,但页面上的其他资源大概还在加载中。
  DOMContentLoaded 和 onload 在网页加载过程中触发的机遇和作用范围有所差别:
  

  • 触发机遇

    • DOMContentLoaded:当初始的HTML文档被完全加载息争析完成之后立刻触发,不等候样式表、图片和子框架完成加载。
    • onload:在整个页面包罗全部依赖资源(如样式表、图片、子框架等)完全加载完成后触发。

  • 作用范围

    • DOMContentLoaded:只关心HTML文档的加载息争析,不涉及其他资源。
    • onload:关心整个页面的加载,包罗HTML、CSS、JavaScript、图片等全部资源。

  • 用途

    • DOMContentLoaded:得当实验那些不依赖于样式表和图片的脚本,好比DOM操纵和变乱绑定。
    • onload:得当实验那些须要等候全部资源加载完成后才气运行的脚本,好比页面的终极渲染和资源的完备性查抄。

  • 兼容性

    • DOMContentLoaded:险些全部今世欣赏器都支持。
    • onload:全部欣赏器都支持,是一个汗青久长的变乱。

  1. document.addEventListener('DOMContentLoaded', function() {
  2.   // 初始化maxkb智能小助手
  3.   embedChatbot();
  4. });
复制代码
办理!

尚有一点小题目,谁人小图标会被一些元素挡着,我就改了一下CSS:
这个需求就见仁见智了
  1. #maxkb .maxkb-tips .maxkb-button button {
  2.     border-radius: 4px;
  3.     background: #FFF;
  4.     padding: 3px 12px;
  5.     color: #3370FF;
  6.     cursor: pointer;
  7.     outline: none;
  8.     border: none;
  9.     z-index: 10000; /* 设置z-index */
  10. }
复制代码
注意
   我没有用Maxkb提供的嵌入方法,我是直接嵌入的源代码(访问maxkb提供的谁人url下载的js代码)!
  halo 1.6嵌入
   着实只要你选择嵌入源代码,全部的事变都好办了,有题目直接简单修改下代码就行!
  结果展示

https://blog.jiumoz.top/

总结

说实话,个人博客也不是特别须要这个东西,就是看着有点帅罢了;不外也算是学习大模子干系知识的一小步;
背面我盼望我博客内里纪录更多干货,MaxKB的分享就到这里了!

   

  • 阿里云推出企业级大模子RAG办理方案 “最强外挂”可大幅提升语言模子体现. ↩︎
  • MaxKB文档 ↩︎ ↩︎

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表