AI News HubLIVE
站内改写2 分钟阅读

RAG-Anything 教程:在 Colab 中构建文本、表格、公式和图像的多模态检索管道

本教程详细介绍了如何在 Google Colab 中使用 RAG-Anything 构建一个支持文本、表格、公式和图像的多模态检索管道。从环境配置、OpenAI API 密钥安全输入开始,到生成合成多模态报告、构建 content_list、插入检索系统,最后测试多种检索模式(naive、local、global、hybrid)。全面演示了 RAG-Anything 处理多模态文档的能力。

来源MarkTechPost作者: Sana Hassan

本教程将引导您使用 RAG-Anything 框架在 Google Colab 环境中构建一个多模态检索管道。RAG-Anything 是一个灵活的检索增强生成工具,能够同时处理文本、表格、公式和图像等多种内容类型。

首先,我们需要准备 Colab 运行环境。通过 pip 安装 raganything[image,text]、openai、python-dotenv、reportlab、pandas、matplotlib 和 tabulate 等库,并修复 Pillow 依赖版本以确保兼容性。安装完成后,导入所需的 Python 模块,包括 numpy、pandas、matplotlib、reportlab、openai 以及 RAG-Anything 的核心类。

接下来,设置工作目录和运行时变量。我们定义基础目录、资产目录、输出目录、工作存储目录和日志目录,并可选地重置存储以保持环境清洁。然后,通过 getpass 安全地输入 OpenAI API 密钥,并对其进行清理和验证。测试聊天和嵌入 API 是否正常,确保密钥有效并且具有适当的权限。本教程使用 gpt-4o-mini 作为聊天和视觉模型,text-embedding-3-small 作为嵌入模型,嵌入维度为 1536。

在准备好基础设施后,我们生成一个合成的多模态报告。创建包含查询量、混合准确率和平均延迟等月度数据的 Pandas DataFrame,并将其转换为 Markdown 表格。同时绘制一条趋势图,展示使用量上升而延迟下降的趋势。使用 ReportLab 生成 PDF 文档,包含介绍文字、表格、公式(加权多模态得分)以及趋势图。这个合成报告为后续测试提供了多样化的内容。

接下来,我们将生成的内容转换为 RAG-Anything 的 content_list 格式。这是 RAG-Anything 直接接受的结构化输入,每个项目包含类型、内容以及可选的元数据(如页码、标题、脚注)。我们依次添加了文本段落、表格(包含正文和标题)、公式(LaTeX 和文字说明)以及图像(带有路径和标题)。所有内容均标注了页码为 0。

完成 content_list 构建后,将其插入到 RAG-Anything 的检索系统中。系统会对这些内容进行向量化索引,以便后续检索。本教程配置了 OpenAI 的聊天、视觉和嵌入功能,并初始化 RAG-Anything 实例。最后,我们测试了四种检索模式:naive(仅文本语义搜索)、local(仅局部上下文)、global(全局检索)以及 hybrid(混合模式)。通过对比不同模式下的检索结果,观察如何处理跨模态的查询。例如,查询“混合准确率趋势”时,hybrid 模式能够结合表格和图表的信息给出更准确的答案。

通过本教程,您将掌握 RAG-Anything 的基本使用方法,并理解多模态检索的关键概念。该框架适用于需要从包含多种内容类型的文档(如报告、研究论文)中提取信息并进行问答的场景。您可以根据自己的数据调整 content_list 格式,并尝试不同的检索策略以获得最佳效果。