網站載入中

YayJun

LOADING

↖ 返回首頁
CASE 02企業內部文件檢索機器人
CASE 02主導開發

企業內部
文件檢索機器人

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

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

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

SCROLL

THE PROBLEM / 問題與情境

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

多套

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

逐份

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

無出處

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

THE SOLUTION / 解決方案

索引先在離線備好,問題進來就三路一起找。

01 匯入

離線

多格式統一

PDF、Office、圖片統一轉成文字與中繼資料。

02 切割

離線

LLM 智能切割

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

03 關鍵

線上

三路檢索 + 加權合併

語意、關鍵字、標題並行查詢,去重後重新排序。

04 回答

線上

串流並附出處

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

ARCHITECTURE / 系統架構

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

建索引提問

來源層

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

處理層

文件處理服務
格式轉換 ・ 中繼資料
切割服務
LLM切割 ・ 規則回退

提問端

自然語言提問

接入層

查詢向量化
與寫入同 Embedding

索引層・兩軌交會

Vector DB
語意・關鍵字・標題 三組向量
Relational DB 中繼資料
文件版本 ・ 切片索引

檢索層・三路並行

語意向量
關鍵字
標題向量

加權合併排序

去重・分數正規化・權重調校

生成層

LLM 生成答案
只依命中切片作答
SSE 逐字回傳
答案標註來源文件
青色=提問(線上即時)灰色=建索引(離線批次) 虛線=三路結果匯入同一個排序去識別化示意,非實際部署

INTERACTIVE DEMO / 互動演示

可互動

選一則提問,看三路檢索怎麼合併成答案。

STEP 1

輸入問題

自然語言提問,先做查詢改寫與向量化

STEP 2

三路檢索

語意、關鍵字、標題三路並行查詢

STEP 3

加權合併

去重後依權重重新排序取前段

STEP 4

串流回答

以 SSE 逐字回傳並附上出處

同事提問 / 合成資料

檢索與回答

待機中

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

本頁為去識別化整理,不含前雇主原始碼或資料;文件名稱與片段皆為前端合成資料。

TECHNOLOGY & DESIGN DECISIONS / 技術選型與設計決策

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

ASP.NET CoreWeb API 與 RAG Pipeline 編排
Qdrant向量儲存與 Named Vectors 多路檢索
Embedding 模型文件與提問的語意向量化
LLM API文件智能切割、查詢改寫與答案生成
SSE逐字串流回傳,降低長回答的等待感
MS SQL文件中繼資料、切片索引與問答紀錄

ALTERNATIVE CONSIDERED

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

單一向量檢索對「換句話說」表現很好,但企業文件充滿內部縮寫,這些詞不在 embedding 模型的詞彙裡,語意搜尋幾乎抓不到。三路並行讓各自補上對方的盲區,再以正規化後的加權合併排序,多一層排序邏輯與權重調校成本,換到的是專有名詞與口語提問效果都能明顯提升。

CHALLENGES & RESULTS / 挑戰與成果

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

挑戰 01

專有名詞查不到

企業內部專屬名詞,改由關鍵字路補齊,切片時保留原文不做正規化。

挑戰 02

切割破壞語意邊界

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

自然語言

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

答案附出處

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

串流回應

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