多模態向量資料庫:用 Gemini Embedding 與 Pinecone 建立跨媒體檢索層
MindStudio 這篇文章示範用 Gemini Embedding 2 系列與 Pinecone 建立 multimodal vector database。真正的重點不是「把所有檔案丟進向量庫」,而是為不同媒體設計正確的前處理、embedding model、metadata schema、chunk / segment 策略與查詢 API,讓文字 query 可以找圖片、圖片 query 可以找文件,最後再被 agent workflow 使用。
把 text、image、video、PDF、audio transcript 映射到可檢索的向量空間,並用 Pinecone 儲存 vectors + metadata,實際媒體檔則放在 S3/GCS/CDN 等 object storage。
text-embedding-004 適合文字;gemini-embedding-exp-03-07 是高分 text embedding;Vertex AI 的 multimodalembedding@001 支援 text/image/video 進入同一 1408 維空間。
Pinecone 負責相似度搜尋、metadata filter、namespace、upsert/delete;不要把 raw binary、base64 image 或大型 blob 塞進 metadata。
檢索 API 可被 MindStudio 或其他 agent workflow 以 webhook / API call 使用,讓客服、媒體管理、商品搜尋等流程能跨模態取回 context。
| 內容類型 | Embedding 路線 | 必要 metadata | 實務注意 |
|---|---|---|---|
| Text | text-embedding-004 或 gemini-embedding-exp-03-07 | type、content preview、source、title、url | 使用 RETRIEVAL_DOCUMENT 建索引、RETRIEVAL_QUERY 做查詢 |
| 先 PyMuPDF / pypdf 抽文字,再文字 embedding | doc_id、chunk_index、page_range、title、author | 512–1024 tokens chunk,10–20% overlap | |
| Image | Vertex AI multimodalembedding@001 | file_path / url、filename、category、dimensions | 含文字圖片建議 image embedding + OCR text embedding 雙軌 |
| Video | multimodalembedding@001 segment-level embeddings | file_path、start_sec、end_sec、duration、title | 影片應按時間段切向量,例如每 10 秒一段,檢索後可定位片段 |
| Audio | 先用 Gemini / Whisper 轉錄,再 embed transcript | file_path、chunk_index、speaker、language、timestamp | 保留時間戳,否則找得到內容但無法定位音訊位置 |
Pinecone index 的所有 vectors 必須同維度。multimodalembedding@001 預設 1408 維;text-embedding-004 是 768 維;gemini-embedding-exp-03-07 可變維度。混用模型或維度會讓 retrieval 失真或直接無法 upsert。
Gemini text embedding 支援 task_type。建立文件索引用 RETRIEVAL_DOCUMENT;查詢用 RETRIEVAL_QUERY。這不是語法細節,而是會影響 embedding 空間的 retrieval 品質。
純向量相似度不夠。type、source、date、category、tenant、doc_id、chunk_index、start_sec/end_sec 這些欄位決定你能不能做可控搜尋與結果還原。
文章建議 production system 可先用 Pinecone 取 top 50 候選,再用 Cohere Rerank、Gemini prompt rerank 或其他 cross-encoder 做第二階段排序。
| 模型 | 模態 | 預設維度 | 適合情境 |
|---|---|---|---|
| text-embedding-004 | Text | 768 | 穩定、快速、成本較低的純文字搜尋 |
| gemini-embedding-exp-03-07 | Text | 可變,最高 3072 | 高品質文字 embedding,需要自行控制 output dimensionality |
| multimodalembedding@001 | Text / Image / Video | 1408 | 真正 cross-modal retrieval:文字找圖片、圖片找文字或影片片段 |
| embedding-001 | Text | 768 | Legacy text embedding,不是新系統首選 |
- 先決定是否真的需要 cross-modal retrieval;如果只是純文字知識庫,不必一開始就上 multimodalembedding@001。
- 建立新 Pinecone index 前先鎖定模型與維度;日後換模型通常應新建 index、全量 re-embed,再切流量。
- 媒體原檔放 object storage,Pinecone metadata 只放 URL / key / path 與可 filter 欄位。
- PDF 與 transcript 不要整份 embed 成單一 vector;chunk 太大會稀釋語意,chunk 太小會失去上下文。
- 圖片若含 UI screenshot、收據、表格、投影片,使用 OCR 文字向量補強;單純 image embedding 不一定能抓到細節文字。
- 大量批次 indexing 要設 rate limit、exponential backoff、queue 與 batch upsert;Gemini API 與 Pinecone 都有吞吐限制。
- 保存 embedding_model、model_version、indexed_at,否則 embedding drift 發生時很難安全重建。
- 多租戶場景用 namespace 或 tenant_id metadata,但要明確設計權限邊界,避免向量搜尋跨客戶洩漏資料。
商品 catalog、設計/素材庫、客服知識庫、教育影音庫、法務/規格文件庫、內部營運資料搜尋、support ticket + screenshot + call recording 整合查詢。
資料全是短文字 FAQ、查詢需求只靠精準 keyword、沒有 media storage / metadata governance、或無法承擔 embedding 重建成本的早期原型。
MindStudio Blog: How to Build a Multimodal Vector Database with Gemini Embedding 2 and Pinecone
Published: 2026-03-12。
Key terms checked from source: Gemini Embedding 2、gemini-embedding-exp-03-07、text-embedding-004、multimodalembedding@001、Pinecone、1408 dimensions、RETRIEVAL_DOCUMENT / RETRIEVAL_QUERY、metadata filtering、namespace、embedding drift、two-stage retrieval。