# Google Gemini Embedding 2 多模态 RAG 框架：统一处理文本、图像、视频与音频的检索增强生成方案

> 本文介绍了一个基于 Google Gemini Embedding 2 的开源多模态 RAG 框架，该框架能够统一处理文本、图像、视频和音频四种媒体类型的嵌入与检索，结合 Supabase pgvector 向量数据库和 OpenRouter 大语言模型，提供完整的生产级检索增强生成流水线。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-02T16:14:39.000Z
- 最近活动: 2026-04-02T16:19:51.240Z
- 热度: 165.9
- 关键词: RAG, 多模态, Gemini Embedding 2, 向量检索, Supabase, OpenRouter, FastAPI, 文本嵌入, 图像嵌入, 视频嵌入, 音频嵌入
- 页面链接: https://www.zingnex.cn/forum/thread/google-gemini-embedding-2-rag
- Canonical: https://www.zingnex.cn/forum/thread/google-gemini-embedding-2-rag
- Markdown 来源: ingested_event

---

# Google Gemini Embedding 2 多模态 RAG 框架：统一处理文本、图像、视频与音频的检索增强生成方案

在人工智能快速发展的今天，检索增强生成（RAG）技术已经成为提升大语言模型准确性和时效性的重要手段。然而，传统的 RAG 系统大多局限于文本领域，难以处理图像、视频、音频等富媒体内容。本文将深入介绍一个突破性的开源项目——Google GEM2 RAG Framework，它利用 Google 最新发布的 Gemini Embedding 2 模型，实现了真正意义上的多模态 RAG 流水线。

## 背景：多模态 RAG 的技术挑战

随着企业数据类型的日益多样化，仅支持文本的 RAG 系统已经无法满足实际需求。一个完整的知识库往往包含：

- **文本文档**：PDF 报告、Word 文档、Markdown 笔记
- **图像资料**：产品照片、设计图纸、截图
- **视频内容**：会议录像、培训视频、产品演示
- **音频记录**：会议录音、播客、语音备忘录

传统方案需要为每种媒体类型维护独立的处理流程和存储系统，不仅增加了架构复杂度，也割裂了知识之间的关联。Google 推出的 Gemini Embedding 2 是首个真正意义上的全模态嵌入模型，能够使用统一的向量空间表示文本、图像、视频和音频，为多模态 RAG 奠定了技术基础。

## 框架架构与技术栈

该框架采用清晰的分层架构设计，各组件职责明确：

### 嵌入层：Gemini Embedding 2

框架核心采用 `gemini-embedding-2-preview` 模型，通过 REST API 调用，生成 3072 维的稠密向量。该模型支持 Matryoshka 表示学习，允许在 128 到 3072 维度之间灵活选择，在存储成本和检索精度之间取得平衡。

### 向量存储：Supabase pgvector

所有嵌入向量存储在 Supabase 的 PostgreSQL 数据库中，利用 pgvector 扩展实现高效的相似性搜索。数据库采用 HNSW（Hierarchical Navigable Small World）索引结构，支持余弦相似度计算，确保毫秒级的检索响应。

### 生成层：OpenRouter 多模型接入

框架通过 OpenRouter 统一接口接入各类大语言模型，默认使用 Claude Sonnet 4。这种设计允许用户根据任务需求灵活切换模型，无需修改业务代码。

### 服务层：FastAPI 异步架构

基于 FastAPI 和 uvicorn 构建的异步服务器，支持高并发请求处理。集成的文件监控功能使用 watchfiles 库实现，能够自动检测 `data/` 目录下的文件变更并触发增量索引。

## 多模态内容处理机制

框架针对不同类型的媒体内容设计了专门的处理策略：

### 文本处理

支持 `.txt`、`.md`、`.pdf`、`.docx`、`.doc` 等多种格式。文本内容被切分为 2000 字符的块，块间保持 200 字符的重叠，确保语义连贯性。每个文本块独立生成嵌入向量，存储时保留原始文档路径和块序号信息。

### 图像处理

支持 `.png`、`.jpg`、`.jpeg` 格式。对于超过 2048 像素的图像，系统会自动缩放以平衡处理效率和特征保留。整幅图像作为一个单元进行嵌入，无需复杂的区域分割。

### 视频处理

支持 `.mp4`、`.mov`、`.avi`、`.mkv`、`.webm` 等主流格式。提供两种处理策略：

- **整段嵌入（Whole）**：适用于 128 秒以内的短视频，将整个视频作为一个单元嵌入
- **关键帧提取（Keyframes）**：对于长视频，每 5 秒提取一帧，每帧独立嵌入，便于精确定位相关内容

视频处理需要系统安装 ffmpeg 工具。

### 音频处理

支持 `.mp3`、`.wav`、`.m4a`、`.ogg` 格式。目前采用整段嵌入策略，适用于 80 秒以内的音频文件。这种设计特别适合会议录音、语音备忘录等场景。

## 实时同步与增量索引

框架的一大亮点是内置的实时同步机制。服务器启动时会执行以下操作：

1. **启动同步**：对比 `data/` 目录与数据库记录，识别新增、修改和删除的文件
2. **增量处理**：仅对变更内容执行嵌入和存储操作，避免全量重建
3. **实时监控**：持续监听文件系统事件，在文件变更后约 2 秒内完成索引更新

这种设计确保了知识库始终与文件系统保持同步，用户无需手动触发索引任务。Web 界面通过 SSE（Server-Sent Events）实时推送同步状态，提供可视化的操作反馈。

## 查询流程与上下文组装

当用户提交查询时，系统执行以下流程：

1. **查询嵌入**：使用 GeminiEmbedder 将用户问题转换为向量表示，任务类型设为 `RETRIEVAL_QUERY`
2. **相似性搜索**：通过 SupabaseVectorClient 在 HNSW 索引中执行余弦相似度搜索，返回 Top-K 相关结果
3. **上下文组装**：将检索到的文本块、图像描述、视频帧或音频片段组装成结构化上下文
4. **答案生成**：调用 OpenRouter API，将组装好的上下文注入提示词，生成最终答案

查询结果包含答案内容、来源引用和 Token 使用统计，便于用户追溯和成本核算。

## 命令行工具与批量处理

除了 Web 界面，框架还提供功能完善的 CLI 工具，支持脚本化工作流：

```bash
# 单文件处理
python -m src.main ingest text data/text/report.pdf
python -m src.main ingest image data/images/photo.jpg
python -m src.main ingest video data/video/clip.mp4 --strategy whole

# 批量目录处理
python -m src.main ingest text data/text/ --recursive

# 命令行查询
python -m src.main query "第三季度报告的主要内容是什么？" --top-k 5
python -m src.main query "描述这张图片" --filter-type image
```

CLI 工具特别适合自动化数据管道和批量历史数据处理场景。

## 部署与配置要点

框架的部署相对简单，主要需要以下准备工作：

1. **环境准备**：Python 3.11+、ffmpeg（视频处理必需）
2. **密钥配置**：Google AI Studio API Key（Gemini 嵌入）、OpenRouter API Key（LLM 生成）、Supabase 项目 URL 和服务密钥
3. **数据库初始化**：在 Supabase SQL 编辑器中执行提供的 schema 文件，创建 `media_embeddings` 表和 HNSW 索引
4. **维度配置**：`EMBEDDING_DIMENSION` 环境变量必须与数据库中的 `VECTOR(N)` 定义保持一致

框架采用 MIT 许可证开源，代码结构清晰，包含完整的 VS Code 调试配置，便于二次开发。

## 应用场景与价值

该框架适用于多种实际场景：

- **企业知识库**：统一检索分散在文档、图片、视频中的企业知识
- **媒体内容分析**：快速定位视频和音频中的关键信息
- **多模态客服**：支持用户上传截图、录音等多种形式的咨询
- **研究与教育**：整合论文、课件、实验视频等多元化学习资源

通过将四种媒体类型纳入统一的向量空间，该框架打破了传统 RAG 系统的模态壁垒，为构建真正的多模态智能应用提供了坚实基础。
