003

TW Legal RAG:把台灣判決做成語義檢索,讓法律問題先找到案例

TW Legal RAG:把台灣判決做成語義檢索,讓法律問題先找到案例 封面圖

TW Legal RAG 比較像一個把 2200 萬筆台灣判決做成語義檢索與 citation check 的法律工具鏈,而不是一個只會聊天的法學助理。

Seer

2026-05-28

在台灣做法律相關的 AI 應用,最痛苦的不是 Prompt 怎麼寫,而是如何從司法院幾千萬筆判決書裡,精準撈出有參考價值的案例,又不會讓 LLM 開始胡說八道(Hallucination)。TW Legal RAG 這個開源專案,就是為了解決這個痛點。

它做的不是直接用 AI 來代替律師回答問題,而是先把「法律檢索」這件事做成一個乾淨的 RAG (Retrieval-Augmented Generation) 資料層。你丟一句白話問題進去,它先幫你找出相關判決,再把結果打包成 Bundle,讓你的 LLM 應用去讀取並整理成答案。

它能解決什麼問題?

  • 提供開源 CLI 工具:twlegalrag
  • 支援用自然語言直接搜尋台灣法院判決。
  • 把檢索出的結果打包成 Context Bundle。
  • 限制 ChatGPT / Claude / Gemini 等模型只能引用 Bundle 內部的案例來回答。
  • 提供 check 指令做 Bundle-level Citation 檢查,防止 AI 瞎編不存在的判決案號。

如果你是律師或法務,這就像是幫你寫好一個「把判決撈準」的前置 CLI 腳本;如果你是一般使用者,它則像一個能用白話文翻譯成法律事實的入口。

技術架構與使用方式

從軟體開發的角度來看,這套工具主要是用 Python 寫成的 CLI 套件:

  • 使用 Typer 來做 CLI 的命令列介面開發。
  • 透過 httpx 來發送 HTTP Request 到後端。
  • 使用 Rich 庫處理 Terminals 上的排版與視覺化輸出。
  • 核心指令包括 searchpackcheckhealth

我們可以用簡單的指令來體驗它的運作:

pip install twlegalrag
twlegalrag search --query "車禍 賠償" --limit 5

這行指令會安裝 twlegalrag 套件,並直接透過 CLI 對遠端法律資料庫發送 Semantic Search 請求,撈出 5 筆跟『車禍賠償』最相關的台灣法院判決。

特別要注意的是,這個 CLI 本身不呼叫 LLM,也不在本機存儲巨大的判決書 Database,而是透過 API 來對接遠端的語義檢索服務。換句話說,它扮演的是純粹的「檢索層」,而不是「回答生成層」。

這套 RAG 工作流的設計思路

這類專案很容易被外行誤解為「訓練一個法律大模型」,但實際上它做的是 Retrieval Infrastructure。我們把它的 Pipeline 拆開來看:

  • 原始資料清理:對判決書的文字格式進行整理、欄位標準化與去噪。
  • Chunking (切段):把動輒幾萬字的長判決書拆成適合 Vector Search 的片段。
  • Embedding (向量化):將文本段落轉換成向量特徵值。
  • Indexing (索引):把向量存入 Vector Database,建立語義搜尋引擎。
  • Retrieval (檢索):根據使用者的 Query 撈出最相關的 Top-K 判決。
  • Bundling (打包):將案例、引用 ID 和摘要打包輸出成 LLM 可讀的格式。
  • Citation Check (引用檢查):比對 LLM 生成的 Answer,確保它沒有胡亂編造 Bundle 以外的案例。

可以搬到哪些領域?

這種 RAG 架構真正有價值的地方不限於「法律」這個垂直領域,而是這套檢索與防幻覺的 Workflow 可以直接套用到其他需要高度嚴謹資料的場景。

只要你的專案符合「資料量極大、需要標註引用來源、容錯率極低」這三個特徵,這套骨架就非常合用:

  • 金融研究:撈取財報、法說會逐字稿,確保分析模型引用的是真實數據。
  • 醫療生技:檢索臨床指引與學術論文,防止 AI 亂開藥方。
  • 企業 FAQ / 客服知識庫:從產品手冊與過去的工單紀錄中撈答案,並精準附上官方文件連結。
  • SRE 與資安維運:從歷年的 Runbook、Postmortem (事後檢討報告) 撈取故障排除對策。

如果要做成產品,這種「先把資料檢索做穩,再把模型當作翻譯與排版工具」的 Decoupled 架構,是目前實務上最不容易踩坑的選擇。

邊界比演算法更重要

在評估這類工具時,我最看重的不是它的 Embedding Model 有多先進,而是它有沒有把「系統邊界」畫清楚。

TW Legal RAG 的防守範圍很明確:它只保證檢索出來的案例相關度,而不打包票 LLM 的法律意見絕對正確;它用 Citation Check 去防堵幻覺,但不替判決書背後的司法實務做價值判斷。這種設計思維在開發 Legal-tech 產品時非常關鍵——在法律的世界裡,一個「看起來很專業的胡言亂語」,往往比「查無此案」帶來的風險還要高得多。

連結

法律是文字的圍牆,但公義的追求,在於穿透墨跡後的溫度。

Visits

--

Waiting for Cloudflare metrics.