教學

Dify 知識庫教學:分段、索引與檢索設定

知識庫決定機器人會不會胡說。這篇說明文件上傳後發生什麼事、分段大小怎麼選、三種檢索模式差在哪,以及回答不準時該從哪一格開始查。

E
Eric 浪花科技創辦人 ·

🚀 想直接開始?60 秒部署你的 Dify

AI 應用開發平台 — No-Code 建構你的 AI。月付 NT$1,599 起,

立即訂閱 Dify

聊天機器人答得準不準,八成取決於知識庫,不是 Prompt。

但知識庫的設定項看起來都很抽象——分段長度、索引方式、Top-K、分數閾值。這篇把每一項在做什麼、以及什麼時候該動它講清楚。

30 秒總覽

設定項在決定什麼第一次怎麼設
分段大小每一塊文字多長用預設,出問題再調
索引方式用向量還是純關鍵字高品質(向量)
檢索模式怎麼找出相關段落混合檢索
Top-K撈回幾段給模型3~5
分數閾值相關度多低就不要先關閉,觀察後再開

文件上傳後實際發生什麼

理解這個流程,後面每個設定就都有意義了:

  1. 解析——把 PDF、Word、網頁轉成純文字
  2. 分段——切成一塊一塊(chunk)
  3. 建立索引——每塊產生一組向量,代表它的語意
  4. 檢索——有人提問時,找出語意最接近的幾塊
  5. 生成——把那幾塊連同問題送給模型

關鍵在第五步:模型只看得到被撈出來的那幾塊。沒被撈到的內容,等於不存在。

分段大小怎麼選

切太小與切太大的症狀不一樣

切太小切太大
檢索精準度低(一段混了多個主題)
上下文完整度
症狀回答斷頭、缺前後文回答離題、抓到不相干內容

判斷原則

沒有一體適用的數字,但有個好用的原則:一段應該剛好包含一個完整的概念。

FAQ 型內容適合切小,一問一答就是一段。操作手冊適合切大一點,一個完整步驟不該被拆開。

這也是為什麼不同性質的文件最好分開建知識庫,而不是全部混在一起用同一組設定。

分隔符號比長度更有效

如果你的文件有清楚的結構(標題、編號、問答),用結構符號當分段點,會比用固定字數切得好很多。花五分鐘整理來源文件的格式,效果通常勝過調半天參數。

索引方式:高品質還是經濟

高品質模式會呼叫嵌入模型產生向量,能理解語意——使用者問「怎麼退錢」也能撈到寫著「退款流程」的段落。代價是建立索引時要花錢、也要花時間。

經濟模式用關鍵字比對,不花模型費用,但只認字面。

絕大多數情況該用高品質。經濟模式適合的情境很窄:內容是高度標準化的術語表、或你只是要先驗證流程通不通。

三種檢索模式

向量檢索

比語意相似度。使用者用完全不同的詞問同一件事也找得到。弱點是專有名詞、料號、型號這類「字面就是重點」的東西,反而可能撈不準。

全文檢索

比關鍵字。專有名詞很強,語意變化很弱。

混合檢索

兩種都跑再合併。多數情況的最佳選擇,尤其是內容裡有產品型號、專有名詞的知識庫。

如果你的知識庫裡大量出現料號、版本號或專業術語,混合檢索跟純向量檢索的差距會非常明顯。

Top-K 與分數閾值

Top-K 不是越大越好

Top-K 決定每次撈回幾段。調大的問題有三個:慢、貴(送給模型的內容變多)、而且模型會被不相干的段落帶偏

多數情境三到五段就夠。如果三段撈不到答案,問題在分段或文件品質,調大只是把雜訊一起帶進來。

分數閾值是雙面刃

設了閾值,相關度低於門檻的段落就不會被撈出來。好處是雜訊變少,壞處是設太高會讓機器人常常說「找不到」

建議先關閉、觀察一段時間的實際分數分佈,再決定門檻。一開始就設一個猜的數字,通常會設錯。

三種文件的分段實例

抽象原則不好用,直接看三種常見文件該怎麼切:

FAQ 或問答集

一問一答就是一段。這類內容天生結構清楚,用問句當分隔點,檢索準確度會非常高。這也是最容易做出好效果的文件類型,如果你手上有整理好的客服問答,先從它開始。

操作手冊

以「一個完整步驟」為一段。切太細會讓回答缺前後文——使用者問「怎麼設定」,撈回來的是步驟三,前面兩步不見了。

如果手冊有編號結構,用編號當分隔點通常比固定字數好。

合約或條款

以「條」為單位。這類文件的專有名詞密度高,務必搭配混合檢索——純向量檢索容易在相似條文之間搞混。

多知識庫的切分策略

比起把所有文件塞進一個知識庫,按主題拆開幾乎總是更好。

切分方式適合的情況
按主題(產品/退換貨/技術規格)最常見,也最有效
按對象(對客戶/對內部)有些內容不該讓客戶看到
按時效(現行/歷史)避免舊版本跟新版本競爭

第三種最容易被忽略。舊版產品說明留在知識庫裡,它會跟新版競爭,而模型分不出哪個是現行的。過期內容該移出去,不是留著當參考。

回答不準時的排查順序

照這個順序查,比亂調參數快很多:

先看如果是問題在
它引用了哪幾段撈到的段落不相關檢索——調檢索模式或分段
撈對了但答錯Prompt——沒講清楚怎麼用資料
什麼都沒撈到閾值太高,或文件根本沒寫
原始文件那段內容被切斷了分段——改用結構符號分段

回答下方的引用來源是整個排查流程裡最有用的東西,先看它再說。

常見問題

Q:文件更新了,知識庫會自動跟著更新嗎?

不會。修改來源文件之後要重新上傳並重建索引,否則機器人還是回答舊版內容。這是最容易被忽略的維護工作——尤其價格、政策這類會變的內容。

Q:可以放多少文件?

空間上,純文字的容量需求很小。但放得下不代表該放——文件變多之後檢索品質常常下降而不是上升,因為更多相似段落在跟正確答案競爭。詳見知識庫變大之後

Q:掃描的 PDF 可以用嗎?

解析成功率不穩,而且很吃資源。建議先用文字辨識轉成純文字再上傳,效果和成本都會好很多。

Q:一個應用可以接多個知識庫嗎?

可以。實務上按主題拆成多個知識庫、再依情境選用,效果通常比全部塞在一起好。

資料來源與延伸連結

延伸閱讀

準備好開始使用 Dify 了嗎?

完成訂閱後 60 秒,系統自動幫你裝好 Dify——獨立容器、資源硬性上限不與他人共用、HTTPS 開箱即用。

立即訂閱 Dify

月付訂閱、不綁約、隨時取消

嗨,我是小浪!有任何問題都歡迎點我詢問,我來幫你解答。

小浪

小浪 - AI小助手

在線中
小浪

有任何問題都歡迎隨時詢問我,我會盡力為你解答!

Powered by RoamerHost AI