圖文混合檢索:讓 RAG 也能搜到圖表
技術文件的關鍵資訊常常在圖表裡。純文字 RAG 會整個漏掉。
把 PDF 抽成純文字時,圖表會消失。使用者問「架構圖裡的資料流是什麼」,檢索永遠找不到——因為那份資訊從來沒進索引。
兩種做法
- 圖轉文字:用視覺模型為每張圖產生詳細描述,把描述當成文字片段索引。實作簡單,相容既有的純文字 RAG。
- 跨模態嵌入:用能同時編碼圖與文的模型,把圖片直接放進同一個向量空間。查詢時圖文一起比。
圖轉文字的提示要具體
為這張技術圖產生檢索用描述,需包含:
1. 圖的類型(架構圖/流程圖/折線圖/表格截圖)
2. 圖中所有可讀的文字標籤,逐一列出
3. 元件之間的關係或趨勢
4. 若為數據圖,說明軸的意義與大致範圍
不要加入圖中沒有的推測,也不要評論。第二點最重要:圖中的文字標籤往往就是使用者會用來搜尋的關鍵詞。少了它們,描述再漂亮也搜不到。
索引時保留關聯
{
"type": "figure",
"text": "架構圖,包含 API Gateway、Auth Service……",
"image_path": "docs/arch-v2/p14-fig3.png",
"doc_id": "arch-v2", "page": 14,
"caption": "圖 3:服務間呼叫關係",
"context": "(前後段落文字,一併索引以增加語境)"
}回答時把圖附上
檢索到圖片片段時,生成的答案應該同時附上原圖。單靠描述回答,使用者無法驗證;把圖放出來,可信度與實用性都不同。
圖片描述會隨模型版本改變。重建描述等於重建索引,這件事的成本要事先評估,不要等到需要換模型才發現。