首页/新闻资讯/正文详情

MaxKB 架构深度拆解:RAG 智能体平台如何跑通一次问答请求

发布时间:2026/9/24 13:37:57 来源:云帆数科 栏目:资讯中心
MaxKB 架构深度拆解:RAG 智能体平台如何跑通一次问答请求
MaxKB 架构深度拆解RAG 智能体平台如何跑通一次问答请求【免费下载链接】MaxKB MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。项目地址: https://gitcode.com/GitHub_Trending/ma/MaxKB在 MaxKB 的聊天页面输入如何重置企业知识库权限并回车后系统并没有直接转发给大模型。它会先命中对应的应用Application把问题改写、检索知识库中的相关段落再把问题 段落拼进提示词最后由模型流式吐回答案。这套先检索、再生成的链路就是 RAG检索增强生成Retrieval-Augmented Generation在 MaxKB 里的完整形态。它解决什么问题MaxKB 的能力全景传统知识库系统有三个绕不开的痛点文档检索只支持关键词问法稍变就搜不到回答没有依据无法溯源到具体段落接入新的模型、新的工具都要改代码。MaxKB 的定位是开源的企业级智能体平台用一套模块化架构把这些事都落到代码里。能力模块说明对应源码位置知识库管理文档解析、分块、向量化、混合检索apps/knowledge/应用与工作流基于 LangGraph 的可视化编排apps/application/flow/聊天管道问题改写、段落检索、模型调用的分步执行apps/application/chat_pipeline/多模型接入统一接入 20 余家模型厂商apps/models_provider/impl/工具与 MCP外部工具、数据库、MCP 协议接入apps/tools/、apps/common/mcp/定时任务Celery django-apscheduler 周期任务apps/ops/celery/整体架构可以概括为三条线交互层Vue 3 管理端 聊天端双入口、服务层Django 5 单体应用按 app 划分业务、能力层LangChain/LangGraph pgvector。一次聊天请求的完整旅程从输入到模型调用以最常用的普通应用 关联知识库场景为例一次请求的链路如下。管道机制本身很薄。pipeline_manage.py 里的PipelineManage只做一件事按顺序执行一组 Step共享一个context字典。四个内置 Step 各司其职generate_human_message_step把原始输入改写成适合检索的查询句reset_problem_step如果命中了预设问题problem 表用预设句替换查询search_dataset_step执行段落检索chat_step调用 LLM 并输出。这种Step 列表 共享上下文的写法让新增一步比如加个敏感词过滤只需实现接口并插入列表不动主流程。技术底座拆解自底向上看三层选型AI 能力层LangChain LangGraph选型见 pyproject.tomllangchain1.3.10、langgraph1.2.6、langchain-openai、langchain-anthropic、langchain-deepseek、langchain-mcp-adapters等。选 LangChain 生态的理由是模型厂商 SDK 覆盖全选 LangGraph 是因为应用工作流需要图结构的节点编排而不是线性调用链。模型接入集中在 apps/models_provider/。impl/目录下有 20 多个厂商目录openai、anthropic、deepseek、zhipu、aliyun_bai_lian、local_model_provider 等每个目录按llm/embedding/tti/tts/stt五类模型能力拆分文件统一继承BaseModelProvider本地模型走 local_model_provider/底层依赖sentence-transformers5.0.0和torch离线环境可用installer/Dockerfile-vector-model单独构建向量模型容器。服务层Django 5 按 app 切业务后端没有上微服务而是 Django 5.2 DRF 3.17 单体业务按 app 目录切分users、knowledge、application、chat、models_provider、system_manage、trigger等每个 app 内部固定api / serializers / views / models / sql五件套。这个结构的好处是边界清晰——apps/maxkb/urls/web.py 里每行include()就是一个 app 的路由入口新人找代码不用翻配置文件。几个关键依赖django-redis缓存、django-db-connection-pool连接池、django-mptt文件夹树、drf-spectacularAPI 文档自动生成挂在/api-doc路径下。视图层用TokenAuth做认证、has_permissions装饰器做细粒度鉴权例如 knowledge 视图 中每个接口都显式声明了所需角色。交互层Vue 3 双入口前端是 ui/src/Vue 3.5 TypeScript Vite 6 Element Plus 2.13 Pinia 3。值得注意的是它构建了两个独立入口admin管理端和chat聊天端package.json里的build与build-chat分别产出两份静态资源Django 在非 DEBUG 模式下通过static.serve各自托管——管理端和聊天端在部署上就是两组静态文件加同一套 API 前缀。工作流编辑器基于logicflow/core实现拖拽编排聊天记录渲染支持 KaTeX、Mermaid、CodeMirror。数据怎么存、怎么查PostgreSQL 一个库通吃MaxKB 没有引入独立的向量数据库向量、分词索引、业务表全部落在 PostgreSQL靠 pgvector 扩展承担相似度计算。这个选型的取舍是少维护一个中间件代价是向量检索与业务查询共享连接池。核心表见 knowledge/models/knowledge.py表职责knowledge知识库关联 embedding 模型外键document文档status字段用 4 位字符串并行记录向量/问题/同步/分词四类任务状态paragraph段落chunks用 PostgresArrayField存分块结果embedding每条段落一行含vector类型向量列和SearchVectorField分词列problem/problem_paragraph_mapping预设问题与段落的映射混合检索的 SQL 在 apps/knowledge/sql/blend_search.sql核心逻辑是把两路分数加权成一个综合分WITH vector_top AS ( SELECT id, paragraph_id, (embedding::vector(%s) %s) AS distance -- 余弦距离 FROM embedding ${embedding_query} ORDER BY (embedding::vector(%s) %s) LIMIT LEAST(%s * 10, 500) ) SELECT paragraph_id, comprehensive_score FROM ( SELECT DISTINCT ON (vc.paragraph_id) vc.paragraph_id, (1 - vc.distance COALESCE(ts_rank_cd(e.search_vector, plainto_tsquery(simple, %s), 32), 0)) AS comprehensive_score FROM vector_top vc JOIN embedding e ON e.id vc.id ... ) sub WHERE comprehensive_score %s ORDER BY comprehensive_score DESC LIMIT %s性能上做了三点向量召回量按Top-K * 10放大后截断到 500 条控制召回-精排比例分词检索走ts_rank_cd全文索引文档解析、向量化等重活全部丢给 Celery 异步执行不阻塞 API 线程。原始文件则压缩后写入 PostgreSQL Large Objectloid字段同一库内自包含不用额外挂对象存储。如何把它跑起来容器化部署与服务扩展installer/ 目录给出完整部署物料Dockerfile应用镜像、Dockerfile-vector-model本地向量模型镜像、start-postgres.sh、start-redis.sh、start-maxkb.sh、init.sql初始化库和 pgvector 扩展。最小化部署即一个应用容器 PostgreSQL带 pgvector Redis三件套前端静态资源已打包进应用镜像由 Gunicorn 直接托管不需要单独起 Nginx 也能跑。服务拆分与扩展能力体现在两个维度异步拆分文档解析、embedding 批量写入由 Celery workerapps/ops/celery/承担重负载场景可以单独横向加 worker不影响 API 进程双入口拆分管理端与聊天端是两组独立 URL 前缀/admin、/chat聊天端可以直接嵌入业务系统管理端限内网访问安全域天然分开。工程化细节清单安全、可观测与性能维度落地方式位置认证自研TokenAuth登录接口带图形验证码captcha依赖apps/common/auth/授权has_permissions装饰器角色 × 资源 × 工作空间三级校验apps/common/constants/permission_constants.py密钥安全RSA 加解密工具、模型 API Key 加密存储apps/common/utils/rsa_util.pyMCP 沙箱代码类工具在独立沙箱进程执行apps/common/mcp/sandbox.py操作日志log装饰器记录接口调用log_management模型持久化apps/common/log/API 文档drf-spectacular 自动产出 OpenAPI 文档/api-doc路由缓存django-redis 缓存 access token、API Key 等热点数据apps/common/cache_data/连接池django-db-connection-pool 管理 Postgres 连接pyproject.toml定时清理聊天记录、临时文件按策略周期清理apps/common/job/统计报表预置 SQL 做 Token 用量、热门问题、客户趋势统计apps/application/sql/小结MaxKB 的架构特色可以概括为一句话Django 单体按 app 切模块LangChain/LangGraph 承载 AI 能力PostgreSQL 一个库同时承担业务表、向量库和文件存储。它没有上微服务、没有独立向量数据库工程复杂度控制得比较克制对想自建 RAG 问答平台、需要可控运维成本的团队是一个值得逐 app 精读的实现样本。后续版本里MCP 协议接入和 deepagents 智能体能力的比重会越来越高这条链路的演进也值得持续跟踪。【免费下载链接】MaxKB MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。项目地址: https://gitcode.com/GitHub_Trending/ma/MaxKB创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

F´ 参数服务端口深度解析:Fw::PrmGet / Fw::PrmSet 的接口契约、状态语义与 PrmDb 集成实战
F´ 参数服务端口深度解析:Fw::PrmGet / Fw::PrmSet 的接口契约、状态语义与 PrmDb 集成实战

F 参数服务端口深度解析:Fw::PrmGet / Fw::PrmSet 的接口契约、状态语义与 PrmDb 集成实战 【免费下载链接】fprime F - A flight software and embedded systems framework 项目地址: https://gitcode.com/gh_mirrors/fp/fprime 导读 本篇技术指南围绕 F&a… · 2026/9/24 13:37:57

thumbor 亮度调节滤镜 brightness 完全指南:参数详解、URL 用法与逐像素实现原理
thumbor 亮度调节滤镜 brightness 完全指南:参数详解、URL 用法与逐像素实现原理

后端图像处理 【免费下载链接】thumbor thumbor is an open-source photo thumbnail service by globo.com 项目地址: https://gitcode.com/gh_mirrors/th/thumbor 点击查看 免费下载 thumbor 是一个开源的照片缩略图服务,内置了一套可串联的滤镜&#… · 2026/9/24 13:37:57

Salt State Modules 完全参考指南:132 个内置状态模块的目录、用法与编写原理
Salt State Modules 完全参考指南:132 个内置状态模块的目录、用法与编写原理

运维配置管理后端 【免费下载链接】salt Software to automate the management and configuration of infrastructure and applications at scale. 项目地址: https://gitcode.com/gh_mirrors/sa/salt 点击查看 免费下载 导读 本文以 Salt 官方文档的 State Syste… · 2026/9/24 13:37:57

CH347F实战:一芯搞定STM32 SWD调试与SPI Flash烧录
CH347F实战:一芯搞定STM32 SWD调试与SPI Flash烧录

/* 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 14:07:20

Flet 中 OpenUrl 客户端动作:在用户手势内打开链接,彻底规避弹窗拦截
Flet 中 OpenUrl 客户端动作:在用户手势内打开链接,彻底规避弹窗拦截

前端跨平台桌面应用移动开发 【免费下载链接】flet Build realtime web, mobile and desktop apps in Python only. No frontend experience required. 项目地址: https://gitcode.com/gh_mirrors/fl/flet 点击查看 免费下载 导读 在 Flet(一个仅用 Py… · 2026/9/24 14:07:20

EMQX Dashboard 修复 SSO 邮箱用户名 URL 编码下的 RBAC 与自助 MFA 禁用问题
EMQX Dashboard 修复 SSO 邮箱用户名 URL 编码下的 RBAC 与自助 MFA 禁用问题

后端物联网消息队列通信 【免费下载链接】emqx The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles 项目地址: https://gitcode.com/gh_mirrors/em/emqx 点击查看 免费下载 EMQX Dashboard 在 5.9 起引入多因素认证&#xff08… · 2026/9/24 14:07:20

Xing4.0-29B-A4B国产算力训练全解:Ascend NPU与MindSpore深度优化
Xing4.0-29B-A4B国产算力训练全解:Ascend NPU与MindSpore深度优化

Xing4.0-29B-A4B国产算力训练全解:Ascend NPU与MindSpore深度优化 【免费下载链接】Xing4.0-29B-A4B Xing4.0-29B-A4B 是中电信人工智能科技有限公司研发的星辰语义大模型系列(原 TeleChat)新一代模型。模型总参数量 29B,激活参数… · 2026/9/24 14:07:20

PHPStan 错误标识符 requireImplements.internalClass 详解:@phpstan-require-implements 引用内部类
PHPStan 错误标识符 requireImplements.internalClass 详解:@phpstan-require-implements 引用内部类

开发工具代码质量静态分析 【免费下载链接】phpstan PHP Static Analysis Tool - discover bugs in your code without running it! 项目地址: https://gitcode.com/gh_mirrors/ph/phpstan 点击查看 免费下载 本文是 PHPStan 错误标识符(Error Identifi… · 2026/9/24 14:07:20

pip 依赖解析机制全解:回溯(Backtracking)、冲突排查与 ResolutionTooDeep 应对指南
pip 依赖解析机制全解:回溯(Backtracking)、冲突排查与 ResolutionTooDeep 应对指南

pip 依赖解析机制全解:回溯(Backtracking)、冲突排查与 ResolutionTooDeep 应对指南 【免费下载链接】pip The Python package installer 项目地址: https://gitcode.com/gh_mirrors/pi/pip pip 在安装任何 Python 包时,都… · 2026/9/24 14:07:14

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

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

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码