大模型应用开发 | 一文教你使用Gemma3 + Mistral OCR + RAG 创建了一个多模态文档问答系统
在这个项目中使用 Gemma3 + Mistral OCR + RAG 创建了一个能够支持包含表格、发票、文本和图表的多模态 PDF 文档问答系统。看完这篇文章后,你会明白是什么让 Mistral OCR 和 Gemma 3 与众不同,Gemma 3 是如何训练的,以及我们如何利用 Gemma 3、Mistral-OCR 和 RAG 创建一个强大的多模态文档问答系统。首先看一下我们最终的问答系统演
在这个项目中使用 Gemma3 + Mistral OCR + RAG 创建了一个能够支持包含表格、发票、文本和图表的多模态 PDF 文档问答系统。
看完这篇文章后,你会明白是什么让 Mistral OCR 和 Gemma 3 与众不同,Gemma 3 是如何训练的,以及我们如何利用 Gemma 3、Mistral-OCR 和 RAG 创建一个强大的多模态文档问答系统。
首先看一下我们最终的问答系统演示:
我打开了 Streamlit 应用,通过侧边栏输入了 Mistral 和谷歌 API 的密钥。如果密钥有效,则初始化 Mistral 和谷歌客户端。
API 连接成功后,我会上传一个包含表格、发票、文本和图表的 PDF 文件。上传 PDF 后我会点击“处理 PDF”按钮,文件会在侧边栏显示。它会创建一个临时目录来管理文件。
如果上传过程中出错,它会捕获并抛出带有清晰消息的 ValueError 异常。如果上传的是图像,它会将图像转换为 Markdown 格式,并遍历 images_dict 中的每个键值对。在替换所有图像占位符后,它会返回嵌入 base64 图像的修改后的 Markdown 字符串。
然后,它会处理多页 OCR 提取的 Markdown 及其相关图像。它会创建一个空的 markdowns 列表来存储每页处理后的 Markdown 内容。通过 bypage.images 迭代,提取每个图像的 ID 作为键,base64 编码字符串作为值。然后将更新后的 Markdown 添加到 markdowns 列表中,并将所有处理过的 Markdown 部分合并,确保页面之间有清晰的分隔。接着,它会检查文档来源类型以确定如何处理文档。
一、是什么让 Mistral OCR 与众不同?
Mistral AI 发布了一款被称为“全球最佳 OCR 模型”的新产品——Mistral OCR。
Mistral OCR 不仅仅是一个 OCR 工具,与其他 OCR 模型不同,它擅长理解复杂的文档元素。Mistral OCR 能够以惊艳的准确性和认知能力理解文档中的每个元素(图片、文本、表格、公式)。
它可以输入图像和 PDF 文件,并从有序交错的文本和图像中提取内容。
它天然支持多语言和多模态,其轻量级设计使其速度远超同类模型,单节点每分钟可处理高达 2000 页文档。本地部署选项还能让敏感数据触手可及。
更重要的是,它能将读取的数据转换为 Markdown 格式。这具有革命性意义,因为 AI 模型本身就能轻松理解 Markdown 格式的数据,从而更好地理解文档数据。
因此,Mistral OCR 是与 RAG 系统结合使用的理想模型,能够处理多模态文档,如幻灯片或复杂的 PDF 文件。
二、是什么让 Gemma 3 与众不同?
谷歌声称 Gemma 3 是“全球最佳单加速器模型”,在单 GPU 的主机上性能超越了 Meta、DeepSeek 和 OpenAI 等竞争对手。新模型的视觉编码器得到了增强,支持高分辨率和非方形图像。
在初步评估中,它开箱即支持超过 35 种语言,并为超过 140 种语言进行了预训练。它能无缝分析图像、文本和短视频,128K token 的巨大上下文窗口让你的应用一次处理并理解大量数据。
Gemma 3 是如何训练的?
Gemma 3 使用了蒸馏技术,并在预训练和后训练阶段通过强化学习和模型融合进行优化。这种方法可以提升数学、编码和指令执行的性能。
此外,Gemma 3 使用了全新的分词器,支持超过 140 种语言,并在谷歌 TPU 上使用 JAX 框架训练。
在后训练阶段,Gemma 3 主要使用了 4 个组件:
- 从更大的指令模型提取到 Gemma 3 预训练检查点。
- 通过人类反馈的强化学习(RLHF)使模型预测与人类偏好对齐。
- 机器反馈强化学习(RLMF)增强数学推理能力。
- 执行反馈强化学习(RLEF)提升编码能力。
这些更新显著提升了模型的数学、编程和指令跟随能力,使 Gemma 3 在 LMArena 中获得 1338 分。
三、开始编码
现在让我们一步步探索如何打造一个强大的多模态文档问答应用。
我设计了 upload_pdf 函数来安全地将 PDF 上传到 Mistral 的 OCR API 并获取用于进一步处理的签名 URL。我首先检查是否提供了客户端对象;如果为 None,则抛出错误,因为该函数需要正确初始化的 Mistral API 客户端。
创建一个临时目录,定义文件路径并写入 PDF 内容。然后以 “rb” 模式打开文件并使用客户端上传到 Mistral API,指定文件名、内容和“目的”为 “ocr”。
上传成功后,通过客户端获取签名 URL 以访问文件。如果发生错误,会捕获异常并抛出带有清晰消息的 ValueError。最后,如果临时文件存在,会确保清理它。
然后创建了 replace_images_in_markdown 函数,它接受一个 Markdown 字符串和一个将图像名称映射到 base64 编码图像的字典。我遍历字典,其中每个键代表图像占位符,每个值包含相应的 base64 字符串。
使用 .replace() 找到 Markdown 中的img_name
并将其替换为base64_str
,确保将占位符转换为嵌入的 base64 图像。最后,我返回替换了图像的更新后的 Markdown 字符串。
接着我定义了 get_combined_markdown 函数来处理多页 OCR 提取的 Markdown 及其图像。我创建一个空的 markdowns 列表来存储每页处理后的 Markdown。我遍历 ocr_response.pages,通过将图像 ID 映射到其 base64 编码表示来收集图像数据。
我使用 replace_images_in_markdown 替换每页 Markdown 中的图像占位符,并将修改后的内容添加到 markdowns 列表中。最后,我使用 “\n\n”.join(markdowns) 合并所有处理过的 Markdown 部分,确保页面之间有清晰的分隔。
然后,我创建了 process_ocr 函数来检查是否提供了客户端;如果没有,我会抛出错误,因为需要初始化的 Mistral 客户端。我检查 document_source 以确定是处理文档 URL 还是图像 URL。如果是 “document_url”,我调用 client.ocr.process() 并使用 DocumentURLChunk;如果是 “image_url”,我使用 ImageURLChunk。
我指定 “mistral-ocr-latest” 模型并启用 include_image_base64=True 以包含 base64 编码的图像。如果来源类型无法识别,我会抛出带有清晰错误消息的 ValueError。
我通过配置 API 密钥来初始化 Google Gemini API。我检查上下文是否为空或太短(少于 10 个字符),如果是则返回错误。我创建了一个包含文档上下文和查询的提示,以引导模型的响应。
我使用温度、top_p 和安全设置等参数配置模型。我使用 model.generate_content() 生成响应。如果发生错误,我会捕获它,打印错误详情,并返回错误消息。
然后,我们创建了 Streamlit 应用,让用户上传文档或图像进行 OCR 处理。用户可以通过侧边栏提供 Mistral 和 Google API 的密钥。如果密钥有效,则会初始化 Mistral 和 Google 客户端。用户可以通过 PDF、图像或 URL 上传文档。应用使用 OCR 处理内容,从每页提取文本并存储以供将来使用。
文档加载后,用户可以询问有关内容的问题,应用使用 Google Gemini API 生成响应。所有聊天消息都存储在会话状态中。Streamlit 还会处理错误,例如缺少 API 密钥或处理失败,并在功能不完整时提供警告。
结论
Mistral OCR 和 Gemma 3 的发布不仅是 Mistral AI 和谷歌在 OCR 及顶尖 AI 性能领域的强力举措,还显著提升了内存效率。这标志着 AI 在文档智能领域的又一次飞跃。
对于开发者来说,这是一个开箱即用的强大工具;对于企业来说,它是解锁非结构化数据价值的金钥匙。对于像我们这样的普通人来说,它也是识别手稿、发票、合同照片等的有用工具。
四、如何系统学习掌握AI大模型?
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源
,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享
!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 2024行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码
,免费领取【保证100%免费
】

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)