用 C++ 系统设计思维,拆解基于 PostgreSQL 的图文混排 RAG 架构

发布时间:2026/7/19 19:52:20
用 C++ 系统设计思维,拆解基于 PostgreSQL 的图文混排 RAG 架构 你一定遇到过这种事:团队攒了几百份技术文档,里面满是架构图、时序图、表格截图,往知识库一导——图全丢了,问 AI 问题,它只能拿纯文字回答,那些关键的流程图和数据表一张都找不回来。这就是图文混排知识库要解决的核心问题。本文会从最基础的"什么是图文混排知识库"说起,逐步深入到文档解析管道的代码实现、图片二进制怎么落库、段落里的![image]()引用怎么和文件存储对接、向量化时图片信息怎么处理,其中会重点介绍 MaxKB(WeKnora 的开源实现)的真实源码设计。目标读者是有 C++ 系统架构背景、同时关注大模型 RAG 工程落地的架构师——我默认你对 Python / Django 不一定熟,但对存储系统、二进制数据管理、检索管道这些概念有扎实功底。有一定难度,但不要急。图文混排知识库本质上就是三个工程问题的交叉:文档解析、二进制存储、向量检索。请放松心情,一步一个脚印跟我走完。1. 图文混排知识库是什么1.1 从纯文本知识库说起先说你已经熟悉的部分。一个最简单的 RAG 知识库,核心数据流是这样的:文档上传 文本切分 向量化 存储 ┌──────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ .pdf │─────→│ 按标题/段 │────→│ Embedding│────→│ pgvector │ │ .docx│