MaxKB 深度剖析:一套 RAG 智能问答平台的完整技术拆解
MaxKB 深度剖析一套 RAG 智能问答平台的完整技术拆解【免费下载链接】MaxKB MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。项目地址: https://gitcode.com/GitHub_Trending/ma/MaxKB把几十份产品手册丢进一个知识库然后直接问退货申请需要满足什么条件几秒后得到的不是搜索结果列表而是一段带出处的答案——这就是 MaxKB 的日常用法。它定位为企业级智能体平台核心价值是 RAG检索增强生成即先查资料再让大模型照着答问答、可视化工作流编排以及对接数十家大模型厂商的模型管理。下面不聊宣传语直接拆开看它用什么技术组合解决了什么问题一次提问的数据在内部是怎么流动的。技术选型每个组件都在解决一个具体问题MaxKB 的选型不是堆新而是每个问题都有对应解法全部可以从 pyproject.toml 和 ui/package.json 核对向量检索不想引入独立向量数据库→ PostgreSQL pgvector 扩展installer/init.sql 里只有一句CREATE EXTENSION vector业务数据和向量同库免去跨库一致性问题对话链路是多步骤串联问题改写→检索→生成→ Django 5.2.16 DRF 3.17.2 承载 API流程本身用 chat_pipeline 的步骤器实现每步一个抽象接口加一个默认实现文档解析、向量化耗时且可能中断→ Celery 5.5.3 Redis配合celery-once防重复任务模型厂商 API 差异巨大→ 统一走 LangChain 1.3.10 / LangGraph 1.2.6 的抽象外加自己一层 Provider 封装详见下文工作流画布需要拖拽式节点编辑→ 前端 Vue 3.5.13 LogicFlow 1.2.27流程图引擎 Element Plus 2.13.5构建用 Vite 6.2.4。一次提问的完整数据流跟着一句话从前端走到答案回来。用户在应用页提问后请求命中 chat_api.py 中的ChatAPI随后进入 pipeline_manage.py 定义的流水线四个步骤依次执行代码都在 chat_pipeline/stepreset_problem_step清理问题上下文generate_human_message_step调用 LLM 把用户口语化的问题补全成检索友好的文本比如把这个咋弄补成如何配置知识库相似度阈值search_dataset_step拿补全后的文本去 pg_vector.py 的query()做混合检索返回段落列表paragraph_listchat_step把问题 检索段落组装成提示词通过 LangChain 流式调用 LLM逐 token 经 SSE 推回前端。检索这一步最值得注意它不是简单的向量近邻。以混合检索为例blend_search.sql 先用余弦距离取出候选再叠加 PostgreSQL 全文检索的ts_rank_cd关键词分数-- 综合得分 向量相似度 关键词命中排名(归一化标志位32) (1 - vc.distance COALESCE(ts_rank_cd(e.search_vector, plainto_tsquery(simple, %s), 32), 0)) AS comprehensive_score候选规模被LEAST(top_n * 10, 500)硬性封顶防止 top_n 调大时全表扫描。写入侧同样埋了细节ts_vecto_util.py 会把知识库级术语表Termbase的自定义词注入 tsvector 分词解决内部黑话检索不到的问题。三个有辨识度的关键设计混合检索 按知识库切分的 HNSW 索引pg_vector.py里有一段很实战的注释当查询命中单个知识库时用knowledge_id xxx而不是knowledge_id__in条件因为后者用不上 PostgreSQL 的部分 HNSW 索引per-KB partial HNSW indexes。换言之索引是每个知识库一个查询必须精确到单个库才能走索引——多库场景就逐库查询再合并排序all_results.sort(...)那段。这是用查询路径上的几次额外循环换索引体积和构建速度的工程取舍。检索模式做成策略数组search_handle_list [EmbeddingSearch, KeywordsSearch, BlendSearch]前端传search_mode即切换新增模式只需实现ISearch两个方法。多模型抽象层20 厂商收敛成一个接口base_model_provider.py 定义了骨架IModelProvider厂商→ModelInfoManage模型清单→ModelInfo模型名 鉴权凭证类 模型实现类。impl/ 目录下有 20 多个厂商实现OpenAI、Anthropic、DeepSeek、智谱、Ollama、火山引擎等而ModelTypeConst把能力切成 9 种LLM、EMBEDDING、STT、TTS、IMAGE、TTI文生图、RERANKER重排、TTV/ITV视频。业务代码只调get_model(model_type, model_name, credential)具体是哪家厂商、哪个 SDK 完全被屏蔽。凭证敏感字段由BaseModelCredential.encryption_dict加密入库返回前端时脱敏为123******890样式。工作流引擎节点定义即 JSON应用不只是固定流水线还能变成图。默认工作流见 default_workflow.json——每个节点带type如search-dataset-node和properties.config.fields输入输出声明step_node/ 下有 146 个节点实现覆盖 LLM、条件分支、代码执行、知识库检索等。外部工具则通过 MCPModel Context Protocol让模型调用外部工具的标准协议依赖mcp1.28.1langchain-mcp-adapters0.3.0接入且工具执行被放进独立沙箱common/mcp/sandbox.py 与 installer/sandbox.c 配合代码类工具在隔离进程里跑避免一个恶意工具打穿整个服务。工程化部署、权限与异步流水线部署侧提供两套入口start-maxkb.sh 本地脚本或 Dockerfile 容器化Web 进程由 gunicorn 23.0.0 拉起django-db-connection-pool1.2.6解决 gunicorn 多 worker 下连接泄漏django-redis6.0.0承担会话与模型实例缓存MaxKBBaseModel.is_cache_model()允许模型对象跨请求复用。文档处理是典型的异步流水线上传后由 knowledge/task 下的 Celery 任务接手——pypdf 6.16.1 解 PDF、python-docx 解 Word、beautifulsoup4jieba 0.42.1 清洗切词分块结果批量bulk_create写入 Embedding 表_batch_save每轮调用is_the_task_interrupted()检查任务是否被用户取消取消即停不浪费算力。权限上走工作空间 资源映射模型system_manage/sql/ 里的get_user_resource_permission.sql等查询决定用户能看到哪些知识库/应用/模型外部调用则靠 application_api_key.py 的 API Key支持过期时间见迁移0007做入口鉴权。带得走的三点向量库不一定要专业pgvector 余弦距离 封顶候选数LEAST(top_n*10, 500) 按库切分 HNSW在单库规模内完全够用还省掉一套独立组件——代价是查询条件必须精确到分区键这个取舍值得在自己的索引设计里权衡。混合检索的融合公式可以直接抄1 - 余弦距离 ts_rank_cd(归一化)的线性叠加比向量/关键词二选一鲁棒得多尤其适合术语密集的内部文档。模型层用厂商→清单→实例三级抽象把 SDK 差异关在impl/目录里新增厂商不动业务代码再配 MCP 沙箱执行外部工具是让模型安全地动手的实用范式。若你基于 MaxKB 二次开发扩展方向也很清晰自定义ISearch接入重排模型、在 step_node 加领域节点、或把 Celery 换成本地任务队列做单机化部署。【免费下载链接】MaxKB MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。项目地址: https://gitcode.com/GitHub_Trending/ma/MaxKB创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

深蓝词库转换 LLM 词频生成配置界面:WinForm 与 Avalonia 双端 Endpoint / API Key / Model 配置实现解析

深蓝词库转换 LLM 词频生成配置界面:WinForm 与 Avalonia 双端 Endpoint / API Key / Model 配置实现解析

桌面应用CLI开发工具 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 点击查看 免费下载 导读 "深蓝词库转换"(IME WL Converter&#xf…

2026/9/24 14:27:51 阅读更多 →
3 条 pnpm 命令跑通 DeepChat:多模型 AI Agent 客户端部署最短路径

3 条 pnpm 命令跑通 DeepChat:多模型 AI Agent 客户端部署最短路径

3 条 pnpm 命令跑通 DeepChat:多模型 AI Agent 客户端部署最短路径 【免费下载链接】deepchat 🐬DeepChat - A smart assistant that connects powerful AI to your personal world 项目地址: https://gitcode.com/GitHub_Trending/dee/deepchat …

2026/9/24 14:27:51 阅读更多 →
TVM Relay 类型系统完全指南:从静态类型、形状依赖类型到类型关系与 ADT

TVM Relay 类型系统完全指南:从静态类型、形状依赖类型到类型关系与 ADT

编译器深度学习模型优化 【免费下载链接】tvm Open deep learning compiler stack for cpu, gpu and specialized accelerators 项目地址: https://gitcode.com/gh_mirrors/tvm7/tvm 点击查看 免费下载 Relay 是 Apache TVM 中负责表达深度学习模型的计算图 IR&…

2026/9/24 14:26:50 阅读更多 →

最新新闻

Yii 2 框架设计决策指南:路径别名、消息翻译、异常处理等 8 项核心约定及其源码依据

Yii 2 框架设计决策指南:路径别名、消息翻译、异常处理等 8 项核心约定及其源码依据

后端Web框架 【免费下载链接】yii2 Yii 2: The Fast, Secure and Professional PHP Framework 项目地址: https://gitcode.com/gh_mirrors/yi/yii2 点击查看 免费下载 导读:本文基于 Yii 2 框架内部文档 design-decisions.md(波兰语版&#…

2026/9/24 15:10:26 阅读更多 →
KuGouMusicApi源码解析(一):文件名即路由,160个接口如何自动注册到Express

KuGouMusicApi源码解析(一):文件名即路由,160个接口如何自动注册到Express

KuGouMusicApi源码解析(一):文件名即路由,160个接口如何自动注册到Express 【免费下载链接】KuGouMusicApi 酷狗音乐 Node.js API service 项目地址: https://gitcode.com/gh_mirrors/ku/KuGouMusicApi 本文带你深入解析 K…

2026/9/24 15:10:26 阅读更多 →
【单片机毕业设计】基于 STM32 或 51 单片机的 LCD1602 显示智能风扇控制系统 基于 STM32 或 51 单片机的人体感应节能温控风扇设计(025508)

【单片机毕业设计】基于 STM32 或 51 单片机的 LCD1602 显示智能风扇控制系统 基于 STM32 或 51 单片机的人体感应节能温控风扇设计(025508)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/24 15:10:26 阅读更多 →
RISC-V电视主控Hi3731V110:系统架构与整机方案设计实践

RISC-V电视主控Hi3731V110:系统架构与整机方案设计实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 15:10:26 阅读更多 →
OOMWOO 驱动轮逆向标定:Roborock S5 单通道霍尔编码器、190:1 减速箱与里程计参数的实证推导

OOMWOO 驱动轮逆向标定:Roborock S5 单通道霍尔编码器、190:1 减速箱与里程计参数的实证推导

智能硬件机器人嵌入式物联网 【免费下载链接】oomwoo Open-source vacuum robot cleaner 项目地址: https://gitcode.com/gh_mirrors/oo/oomwoo 点击查看 免费下载 本文是 OOMWOO 开源扫地机器人项目中 contributions/part-specs/OsakaTX/vacuumtiger-verified-spe…

2026/9/24 15:10:26 阅读更多 →
Feynman 会话日志(/log)工作流:面向科研 Agent 的持久化 Session Log 编写指南

Feynman 会话日志(/log)工作流:面向科研 Agent 的持久化 Session Log 编写指南

Feynman 会话日志(/log)工作流:面向科研 Agent 的持久化 Session Log 编写指南 【免费下载链接】feynman The open source AI research agent. 项目地址: https://gitcode.com/gh_mirrors/feynman/feynman 本指南以仓库 prompts/log.md…

2026/9/24 15:09:26 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →