iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0
AI Engineering

和 AI 一同打造個人專用知識庫:從零散資料到可運用的知識系列 第 7

Day 7|創建知識庫之旅:讀到了網頁,就代表讀到了完整內容嗎?

  • 分享至 

  • xImage
  •  

一開始,其實只是把網址存起來

前一篇聊到,我平常會透過 MCP,請 AI 幫我把資料存進知識庫。

不過,一開始存進去的其實只有網址。讀取原文、整理摘要,都是後來才慢慢加上的。

因為我希望下次看到這筆資料時,可以先知道它大概在講什麼、能拿來做什麼,不用每一個連結都重新打開。

但開始讀取網頁內容之後,又有一個需要注意的地方:有抓到文字,就代表重要內容都有留下來嗎?

我比較在意的是,有時候不一定完全抓不到,而是只抓到一部分。如果少了使用限制,後面看到整理好的說明時,就可能誤以為這個工具什麼情況都能用。

Trafilatura 在這裡做什麼?

知識庫裡用到一個工具,叫做 Trafilatura

一個網頁除了文章本身,也可能有選單、頁尾或其他文字。Trafilatura 的工作,就是從網頁的 HTML 裡擷取主要內容,讓後面的程式有文字可以繼續處理。

這裡可以先分成兩件事:

  • 正文擷取:從網頁裡取出主要文字。
  • 摘要整理:根據取得的文字,整理重點或用途。

也就是說,Trafilatura 處理的是前面「取得材料」的部分。如果這一步少了一段,後面的 AI 收到的材料就可能不完整。

https://ithelp.ithome.com.tw/upload/images/20260919/20183856qzJAYDIvIm.png

圖說:這張圖簡化呈現正文擷取的位置;先取得文字,後續才有材料可以整理。

如果使用限制放在表格裡呢?

為了把這件事看清楚,這次請 AI 協助做了一份簡單的 HTML 範例,模擬工具說明頁面。

裡面有工具介紹、安裝說明、使用範例,以及這段限制:

只支援文字型 PDF,不支援掃描圖片。處理大量文件前,請先用小檔案測試。

這是虛構工具的教學範例,沒有真的安裝 PDF 工具。我們測的是「網頁文字擷取」,不是 PDF 處理能力。

測試先把限制寫在一般段落,再把同一段限制放進表格,觀察擷取結果有什麼不同。

範例檔案與測試程式,是我跟 AI 說明想法後,請 AI 協助產生並執行的,可能仍有疏漏,歡迎指正。這次使用 Trafilatura 2.2.0,在本機測試 HTML 範例,沒有呼叫摘要模型,也沒有修改正式知識庫。

只改一個設定,結果有什麼差別?

這次要看的設定是:

include_tables=False

include_tables 控制擷取時是否包含表格內容。False 表示不包含,True 表示包含。

測試使用的呼叫方式如下,其中 html 是範例網頁的 HTML 字串:

text = trafilatura.extract(
    html,
    include_comments=False,
    include_tables=False,
)

接著,對同一份含有表格的 HTML,只把設定改成:

text = trafilatura.extract(
    html,
    include_comments=False,
    include_tables=True,
)

include_comments=False 維持不變,這樣比較容易看出表格設定帶來的差異。這些是程式呼叫片段,不是可以單獨執行的完整檔案。

先前由 AI 執行的結果如下:

限制放置的位置 設定 使用限制是否保留
一般段落 include_tables=False
表格 include_tables=False 沒有
同一份表格範例 include_tables=True

在排除表格的結果裡,工具介紹和使用範例都還在,讀起來也很順,但「不支援掃描圖片」這段限制不見了。

改成包含表格後,同一段限制就出現在輸出裡。

為什麼少了這段,會有差別?

假設我存這個工具,是想找時間拿來整理文件。如果只看到它能把 PDF 文字整理出來,卻沒有看到「不支援掃描圖片」,就可能拿掃描文件去嘗試,最後才發現不適用。

少掉的文字可能不多,卻會影響我判斷這個工具能不能用。

這也是我在意的地方。我希望知識庫可以幫我快速理解資料,但如果只留下功能,沒有留下條件或限制,反而可能讓我產生錯誤期待。

不過,這次結果也不能直接解讀成:以後把 include_tables 全部改成 True 就好了。

它只能證明,在這份範例裡,重要資訊放在表格中,排除表格就會漏掉它。其他網頁的結構不同,還是需要看實際擷取結果。

先找出內容在哪一步不見

如果之後發現摘要少了重要資訊,我可以先依序核對:

  1. 原始網頁有沒有寫?
  2. 擷取出來的文字有沒有保留?
  3. 後續摘要有沒有呈現?

如果原文有寫,但擷取結果沒有,就先檢查擷取階段。

如果擷取結果有保留,摘要卻沒有,再往後檢查:程式實際交給 AI 的材料是否包含那一段,以及摘要是怎麼整理的。

請另一個 AI 看同一份已經缺少限制的文字,也不能靠這份材料確認原文漏掉了什麼。要核對遺漏,還是需要回到原始內容。

今天先記住這件事

做知識庫,是希望之後能更容易找回資料,也能從裡面學到東西。
所以除了存得進去,我也需要確認存下來的是什麼。

這次的範例讓「有抓到文字」和「重要資訊有保留」的差別變得比較具體。

之後看到整理結果不完整時,可以先沿著原文、擷取結果、摘要這幾個步驟回頭看,找出內容是在哪裡少掉的,再決定要調整哪個地方。


上一篇
Day 6|創建知識庫之旅:我請 AI 存資料,MCP 背後做了什麼?
下一篇
Day 8|創建知識庫之旅:用 NotebookLM 補充資料,最後怎麼存回來?
系列文
和 AI 一同打造個人專用知識庫:從零散資料到可運用的知識8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言