呂凱崴kaiweilu.tw

Drill Library:附引用的知識庫問答子系統

指導教授實驗室自動化研究平台 Drill 的知識庫子系統:文件上傳一次,同時供研究者預覽與 agent 檢索;人與 agent 皆可依庫內文件問答,回答附引用出處。自願參與,子系統獨立完成。

期間
2026-08 起(8 月受指派,8-26 至 9-10 開發;持續參與平台開發)
角色
自願參與;子系統獨立完成,於例會報告並依審查意見修改,向指導教授展示
技術
TypeScript、React、Cordis 插件框架、TF-IDF 加中日韓雙字組檢索、工具權限受限的子 agent、markitdown
規模
5 個套件、4 個 agent 工具、47 項測試;DRCD 測試集 3,493 題評估

書審對應:附件 B-1

三區版面:來源欄、問答主區、右側 PDF 預覽
三區版面:來源欄、問答主區、右側 PDF 預覽
本頁目錄
  1. 需求與難點
  2. 架構:三條路徑
  3. 儲存、轉換與索引
  4. 檢索:TF-IDF 加中日韓雙字組
  5. 提問委派與引用
  6. 介面
  7. 評估
  8. 測試、文件與審查
  9. 影片

需求與難點

Drill 是實驗室建置的全自動研究平台,涵蓋從知識來源到報告的研究流程,原本沒有知識庫元件。需求是:研究資料上傳一次,同時保存原始檔(供人預覽、下載)與 Markdown(供 agent 檢索),多本知識庫並存,不把整份文件塞進對話脈絡,且 agent 的回答必須附出處。

難點有三:中英混寫與簡繁漂移的文本如何檢索;agent 如何在不遞迴、不寫入的前提下存取知識庫;「回答是否真的來自文件」如何量測。

架構:三條路徑

Drill Library 架構:入庫、頁面問答、agent 委派三條路徑,以及五個套件各自負責的部分
Drill Library 架構:入庫、頁面問答、agent 委派三條路徑,以及五個套件各自負責的部分

子系統以插件方式擴充平台、不改核心,分成五個套件:核心服務(儲存、轉換、索引、檢索、問答)、瀏覽器閘道(遠端呼叫、上傳、預覽與下載路由)、agent 工具(ask、structure、read、ingest 四個)、librarian 子 agent,以及側欄與整頁介面。

儲存、轉換與索引

  • 每份文件同時保存原始檔與 Markdown;Office、PDF、EPUB、HTML 以 markitdown 子行程轉換,另有無相依的文字轉換器作為後援。
  • 入庫即重建索引 index.json:大綱、摘要與預先斷詞的段落。查結構與搜尋只需讀一個檔再計分,查詢時不再讀文件、不再重新分詞;索引遺失或過期時於第一次讀取自動重建。
  • 索引與問答紀錄存成獨立檔而非資料表,讀取邊界經結構驗證,可重建而非承重。
一本知識庫在磁碟上的實際檔案:原始檔、Markdown、入庫時索引與問答紀錄
一本知識庫在磁碟上的實際檔案:原始檔、Markdown、入庫時索引與問答紀錄

檢索:TF-IDF 加中日韓雙字組

研究筆記常中英混寫,專案沒有中文分詞器。檢索採 TF-IDF 搭配中日韓雙字組斷詞,不需分詞器即可命中;知識庫標題比對簡繁不敏感。這個設計在後述評估中以對照組量化:對照組只把雙字組換成單字,chunk 與計分公式完全相同,因此差距來自斷詞設計本身。

提問委派與引用

  • 問答交給 librarian 子 agent 處理,其工具權限受限(不可再呼叫 ask 或 ingest),因此不會遞迴、不能寫入。
  • 回答附引用;點選引用直接開啟被引文件的 Markdown 預覽。
  • 主聊天中的 agent 以 library_ask 委派給子 agent,接著以 library_structure、library_read 讀結構與內容;人與 agent 的問答紀錄合流於同一討論串並持久化,agent 提問標示「Agent 提問」。
主聊天委派 librarian 子 agent 回答並附引用
主聊天委派 librarian 子 agent 回答並附引用
同一次對話的軌跡:工具呼叫與回傳
同一次對話的軌跡:工具呼叫與回傳
知識庫討論串中的「Agent 提問」紀錄與引用來源
知識庫討論串中的「Agent 提問」紀錄與引用來源
點選引用開啟被引文件
點選引用開啟被引文件

介面

三區版面:來源|問答|預覽。上傳與預覽、下載路由每次請求重新驗證,檔案路徑不取自用戶端輸入;Markdown 與 PDF 分開預覽,不必進聊天即可閱讀;深連結可還原到指定知識庫與文件。

評估

評估方法於執行前寫定,對實際部署組合量測:資料集為台達電子釋出的繁體中文閱讀理解資料集 DRCD v1.3 測試集(378 篇文章、1,000 段落、3,493 題),模型為實驗室主機上的開源模型。

檢索(全部 3,493 題)Library對照組(單字 TF-IDF)
標準段落排第一76.8%53.7%
標準段落進入送給模型的 8 段98.1%87.5%
MRR@1000.8530.662
端對端問答(抽樣 200 題,真實模型)結果
回答包含正確答案96.5%(193/200)
引用到正確段落98.0%(194/198)
回答延遲中位數9.4 秒

評估報告載明資料集、抽樣方式與各項指標的計算方法,附 200 題逐題紀錄與可重跑的程式。

測試、文件與審查

  • 47 項自動化測試全數通過:核心服務 32、agent 工具 6、UI 9。
  • 子系統文件三語版、6 份套件 README、2 份設計決策紀錄。
  • 承接 Issue 後於例會報告;reviewer 提出的四項修改要求(對齊 DeepWiki 式三工具設計、入庫時建索引、問答委派子 agent、介面依平台設計語言)全數完成後提交 PR,並向指導教授展示。

影片

影片:Drill Library 實機操作(3 分 50 秒,無旁白、有字幕)

流程:側欄入口 → 三區版面 → 雙份保存與 PDF/Markdown 切換 → 頁內問答與引用 → 主 agent 委派 librarian 子 agent → 問答紀錄合流 → 深連結重新整理還原。知識庫內容為本子系統自己的技術文件。