網站載入中

YayJun

LOADING

↖
CASE 02 / 企業內部文件檢索機器人
CASE 02主導開發

企業內部
文件檢索機器人

文件散落各目錄 → 自然語言提問,答案附資料來源,串流回應。

文件解析三路向量檢索RAGSSE 串流

我的角色|主導開發:RAG Pipeline 設計(Chunking 策略、三路向量搜尋與結果合併)、後端實作與檢索品質調校。

01 / 問題與情境

答案就在文件裡,但沒人找得到,也不敢使用。

多套

文件散落在不同目錄,同一份規範可能存在好幾個版本。

逐份

只能靠檔名與關鍵字翻找,換句話說或中英夾雜就搜不到。

無來源提示

就算問到答案也不知道依據哪份文件,沒人敢直接拿來使用。

02 / 解決方案

索引先在離線備好,問題進來就查三路向量。

01 匯入

離線

多格式統一

PDF、Office、圖片統一轉成文字,再由 LLM 產生大綱與關鍵字。

02 切割

離線

LLM 智能切割

依語意邊界切片,失敗時回退規則切割,再寫入索引。

03 關鍵

線上

三路向量檢索 + 去重排序

內容、標籤、大綱三組向量分別查詢,去重後依最高分排序。

04 回答

線上

串流並附出處

SSE 逐字回傳,答案一律標註來源文件。

03 / 系統架構

一個問題怎麼變成有出處的答案。

1/7 建索引・來源層

員工規範(pdf)
旅遊補助申請(pdf)
社團活動簽到表(docs)

2/7 建索引・處理層

文件處理服務格式轉換・LLM 大綱與關鍵字
切割服務LLM切割・規則回退

3/7 提問・提問端

自然語言提問

4/7 提問・接入層

查詢向量化LLM 抽關鍵字・與寫入同 Embedding

5/7 索引層・兩軌交會

Vector DB內容・標籤・大綱 三組向量
Relational DB 中繼資料文件版本・切片索引

6/7 檢索層・三路向量

內容向量
標籤向量
大綱向量

去重合併排序

同切片取最高分・排序取前段

7/7 生成層

LLM 生成答案只依命中切片作答
SSE 逐字回傳答案標註來源文件

※Desktop 版可展示 Data Flow 🖥️

04 / 互動演示

動手桌機可操作

互動區:選一則提問,看三路檢索怎麼將知識片段組成答案

1

輸入問題

自然語言提問,先抽關鍵字再向量化

2

三路檢索

內容、標籤、大綱三組向量分別查詢

3

去重排序

同切片取最高分,排序後取前段

4

串流回答

以 SSE 逐字回傳並附上出處

從左邊選一則提問,四個步驟會依序點亮,最後產出附出處的答案。

※Desktop 版可操作這段演示 🖥️

本頁為去識別化模擬,不含專案原始碼或資料;文件名稱與片段皆為前端合成資料。

05 / 技術選型與設計決策

每個技術都對應一個要解的問題。

ALTERNATIVE CONSIDERED

為何不用單一向量檢索,而做三路向量檢索?

單一內容向量只看得到切片的局部文字,提問若是關鍵詞或文件主題就容易漏掉。因此再由 LLM 產生標籤與大綱並各自向量化,讓提問多兩個比對入口。代價是寫入與查詢成本增加,而且不同向量的分數分布不同,直接取最高分並不嚴謹;專有名詞的精確比對也仍受限於向量檢索,這些是下一步要改善的地方。

06 / 挑戰與成果

難的不是查得到,是查得準又敢放心使用。

挑戰 01

專有名詞查不到

由 LLM 抽出文件標籤與提問關鍵字,再以向量比對補強召回,切片時保留原文不做正規化;精確比對仍是已知限制。

挑戰 02

切割破壞語意邊界

以 LLM 依語意切割並保留標題階層,失敗或超長時回退規則切割再二次切分。

自然語言

用問的就好,不必先知道文件在哪。

答案附出處

每句話都能追回原始文件段落。

串流回應

SSE 逐字回傳,長答案不必空等。