用 RAG 打造金融智能客服的踩坑紀錄

在 TEJ 實習的第一個專案就是建構 AI 智能客服。聽起來很酷,但實際開發過程充滿了各種意想不到的挑戰。這篇文章記錄了從零到上線的完整歷程。

為什麼選擇 RAG?

最初我們考慮過直接 fine-tune 一個模型,但金融產品的技術手冊更新頻繁,每次重新訓練成本太高。RAG(Retrieval-Augmented Generation)讓我們可以把知識庫和模型解耦——文件更新了,只需要重新 embedding 就好。

向量資料庫的選型

比較了 Pinecone、Weaviate、Chroma 和 Qdrant 之後,最終選擇了 Qdrant。主要原因:

Chunk 策略的血淚教訓

一開始用固定 500 token 切分,結果 LLM 常常拿到不完整的上下文。後來改用語義切分(按段落 + overlap),搭配 metadata 標註來源章節,準確率從 60% 飆升到 85%。

最終架構

整個系統跑在 Docker Compose 上:Qdrant 做向量檢索、LangExtract 做文件解析、FastAPI 做後端、加上一個簡單的 HTML 前端和管理者後台。從提問到回答大約 2-3 秒,對內部客服來說完全夠用。

學到的事

最大的收穫不是技術本身,而是理解到 AI 落地最難的部分往往是「定義什麼是好的回答」。和業務端反覆對焦需求,比寫 code 花的時間更多——但這才是真正有價值的部分。