Clean Web Clipper 加到 Chrome(免費)

適用對象

別再把同一份選單貼給模型

在一份 109 頁的語料上(逐頁比較那一輪),Clean Web Clipper 留下 102 行重複的導覽,另外三個擷取引擎分別留下 282、478 和 491 行,而且完全沒有殘留的 HTML 標籤。送到模型的是文章本身,加上一個註明來源網址和發布日期的 frontmatter 檔頭。

貼上一個頁面的真正成本

把一頁文件從瀏覽器複製到聊天中,你送給模型的是 Cookie 通知、側欄、版本選擇器、「本頁內容」側欄、四欄頁尾連結,以及一條「延伸閱讀」。每一行都是你要付費的 token,每一行也都在和你真正想讓模型讀的那兩段文字搶注意力。

第二個成本比較隱微:重複的導覽看起來像結構。請模型摘要頁面,它會把選單項目列成主題;問它某個說法出自哪裡,它會指向一個連結文字。粗糙的轉換器留下的零散 divtable 標記,又多了一層模型得繞過才能讀到句子的東西。

第二次貼上時,成本開始累積。對話變長,歷史被截斷,你再貼一次頁面;只是頁面從早上到現在已經改了,模型現在是在推理稍微不同的文字,而對話中沒有任何東西記錄這件事。每次執行都抓取同一個網址的代理,也有同樣的問題,外加速率限制和一個它通過不了的登入。磁碟上的檔案每次都是相同的輸入,網站連不上時也仍然讀得到。

模型改為收到什麼

模型得到的全部內容,沒有別的docs.python.org/3/library/asyncio-task.html
---
title: "Coroutines and Tasks"
source: "https://docs.python.org/3/library/asyncio-task.html"
extraction: "dom"
---

## Awaitables

We say that an object is an *awaitable* object if it can be used in an
`await` expression. There are three main types: coroutines, Tasks and Futures.

```python
async def main():
    await asyncio.sleep(1)
    print("hello")
```

為提示設定擷取

兩種不同的設定,大部分選項相同:一種是貼進聊天,一種是填滿代理讀取的資料夾。兩者都大約需要五分鐘。

  1. 在圖示上按右鍵,開啟選項,把按下圖示時的動作設為「複製到剪貼簿」。這是最短的路徑:按一下,切換到聊天,貼上。
  2. 把圖片設為略過。一個 CDN 圖片網址可能就有兩百個字元的縮放參數,對文字模型而言毫無意義。
  3. 在 frontmatter 區段保留 sourcedate,關閉 authorextraction。兩行檔頭就足以讓模型歸因說法;其餘都是你付費傳送的檔頭。
  4. Alt+Shift+M 擷取頁面並貼上。如果擴充功能回應「沒有文章」,就不要硬貼。這個回應代表頁面大多是連結文字,而這正是會讓模型把選單項目列成主題的輸入。
  5. 如果是給代理而不是聊天,把存放位置設為代理已經在讀的資料夾,例如專案中的 context/,並把檔名範本設為 {domain}-{title}
  6. 把任務真正依賴的六到八個頁面擷取到那個資料夾。代理接著讀取本機檔案:不需抓取、沒有速率限制、沒有它通過不了的登入,每次執行都是相同的文字。
  7. 為你最常擷取的網站新增個別網站規則,例如把 reddit.com 放進專屬子資料夾並略過圖片,資料夾不用你費心就能保持有序。

降低上下文費用的設定

這裡的每一項,都能移除模型要收費讀取的東西。frontmatter 那一列最常被設錯:歸因值兩行,不值五行。

設定為什麼在這裡用這個值
按下圖示複製到剪貼簿按一下、切換、貼上:沒有檔案、沒有視窗、沒有對話框
圖片略過圖片網址很長,對文字模型毫無意義,而且常常比旁邊的段落還長
Frontmatter開啟 `source` 和 `date`,關閉 `author` 和 `extraction`足以歸因說法,不必在模型用不到的欄位上花錢
存放位置(代理)專案中的 `context/` 資料夾本機檔案代表不需抓取、沒有速率限制,每次執行的輸入都相同
檔名範本`{domain}-{title}`在資料夾中 grep 的代理,能分辨兩個都叫「Overview」的頁面
選取範圍擷取選取範圍,而不是整頁當一個段落就能回答問題時,其他九個段落都是純成本
個別網站規則`reddit.com` → 子資料夾,略過圖片討論串和參考資料值得分成兩堆
資訊流頁面傳回的內容,而不是三百個連結分類列表頁上的擷取視窗
此網頁沒有文章。

擷取出的文字有超過四分之一位於連結文字中,
這正是資訊流、商店首頁或搜尋結果的樣子。
沒有任何內容寫入剪貼簿。

  檢查的區塊      41
  選中的區塊      <section class="cards">
  連結比例        0.71
  實際文字        740 個字元

三種使用方式

一個頁面,一個問題

你在讀一份規格,想請模型確認你對其中一節的理解。你選取那一節,按 Alt+Shift+M,貼上。送達的是那一節、一行 source 和一行 date:沒有 Cookie 通知、沒有版本選擇器、沒有「本頁內容」側欄,也沒有八欄頁尾。

差別顯現在答案上,而不是帳單上。請模型摘要貼上的頁面時,拿到導覽的模型會把選單項目列進主題,因為每個段落都重複出現的詞組看起來確實像結構。把它移除,就從源頭移除了這個錯誤。

代理讀取資料夾,而不是去抓取

一個寫程式的代理需要某個 SDK 的 API 參考文件。你把八個頁面擷取到 context/,每個都以網域和標題命名。代理讀取本機檔案:不抓取任何東西、不受速率限制,你登入後才看得到的頁面也和公開頁面一樣讀得到。

它也保持不變。抓取的頁面可能在同一個任務的兩次執行之間改變,而紀錄中不會有任何東西說明這件事。擷取的檔案只有在你重新擷取時才會改變,舊檔案也仍在那裡可以比對差異。

模型根本到不了的頁面

文件位於需要單一登入的內部 wiki,或在你付費訂閱的內容裡。請模型抓取那個網址,得到的是登入畫面;給模型搜尋工具,得到的是提供給機器人的版本。擴充功能讀取的是瀏覽器已經為你的工作階段呈現的頁面,所以你看得到的文字,就是你能貼上的文字。

途中頁面文字絕不會離開你的電腦,擷取內容本身也不會上傳到任何地方。擷取內容進入你的剪貼簿,「傳到 AI 聊天」按鈕是複製並開啟分頁,而不是自己傳送任何東西。

和其他把頁面餵給模型的方法相比

以下是大家實際用來把網頁放到模型面前的五種途徑。下表每一欄是你得到什麼、代價是什麼,包括這個擴充功能在內。

目前的做法你得到什麼代價是什麼
貼上網址提示中的一行許多模型無法抓取;能抓取的,拿到的可能是為機器人準備的版本
複製貼上頁面全部內容,包括雜物可比較的輸出帶有 282 到 491 行重複選單,這裡是 102 行
截圖給多模態模型頁面當時的樣子圖片 token、沒有來源行、沒有日期,事後也無法 grep
把頁面存成 HTML磁碟上的忠實副本標記占滿檔案;文章只是你送出內容中的少數
閱讀模式,再複製有時是比較乾淨的文字有些頁面會觸發、有些不會,而且沒有來源或日期檔頭
Clean Web Clipper文章文字加兩行檔頭一次一頁;它不摘要、不切塊,也不嵌入任何東西

答案回來不對的時候

模型摘要的是導覽,不是文章

這正是資訊流頁面對提示造成的影響。看看擷取視窗說了什麼:如果它回報「沒有文章」,代表擷取出的字元有超過約四分之一位於連結文字中,這是分類頁、搜尋結果或商店首頁的特徵。找到文章頁面本身,擷取那一頁。答案的改變會比任何提示措辭調整都大。

擷取內容比頁面看起來短得多

有兩個常見原因。一是頁面在你捲動時才載入內文,擷取那一刻只有已呈現的部分存在:先捲到底,再擷取。二是某個段落在收合的摺疊區塊或還沒打開的分頁標籤裡,打開之前並不在 DOM 中。瀏覽器沒有呈現的東西,任何擴充功能都讀不到。

沒有日期可供模型引用

頁面沒有宣告日期。欄位會留空,而不是填上今天的日期,因為在模型的上下文中,信心滿滿的錯誤日期比沒有日期更糟。它會被當成事實引用回來給你。有些語料帶日期的頻率遠低於其他語料:在土耳其和捷克的前五十大清單中,發布日期確實很少見,這是那些網站的特性,不是擷取的問題。

圖片連結還在吃掉上下文

圖片預設保留為連結,這對閱讀是對的,對提示卻是錯的。把圖片設為「略過」,可以全域設定或作為個別網站規則,Markdown 中就不會有任何圖片參照:沒有預留位置、沒有空括號,什麼都沒有。

它不做的事

它不會和任何 AI 服務通訊。擷取內容不會送到任何地方:它進入你的剪貼簿或磁碟,「傳到 AI 聊天」按鈕只是複製並開啟一個分頁。它不會摘要、切塊或嵌入文字。那是你的模型的工作,不是擷取工具的。它一次擷取一頁,就是你正在看的那一頁,沒有爬蟲。它也無法擷取頁面從未呈現的內容。

加到 Chrome(免費)完全免費。不需要帳號、不需要註冊,也沒有任何限制。

常見問題

為什麼不直接把網址給模型?
許多模型根本連不到頁面,連得到的往往拿到提供給機器人的版本,而不是你正在讀的那個版本。擷取抓下的正是你螢幕上的內容,包括你已經登入才看得到的頁面。
擴充功能會把任何東西傳給 AI 服務嗎?
只有在你按下那個按鈕時才會,而且即使那樣,它也只是複製到剪貼簿並開啟聊天分頁。擴充功能本身不會上傳任何關於頁面的內容。
這實際上能省下多少上下文?
可測量的部分是重複的導覽:在 109 個頁面上有 102 行重複選單,比較的引擎則留下 282、478 和 491 行。在選單於每個段落重複的頁面上,那就是大部分的雜訊。
可以略過圖片來節省 token 嗎?
可以。把圖片設為「略過」,Markdown 中就完全沒有圖片連結。
在需要登入的頁面上能用嗎?
可以。它讀取的是瀏覽器已經呈現的頁面,所以內部 wiki 或你訂閱的文章,擷取起來和其他頁面一樣。
可以搭配本機模型使用嗎?
可以,而且它完全沒有假設別的用法。擷取內容絕不會上傳,所以它進入你的剪貼簿或磁碟上的資料夾,之後由什麼來讀取完全是你的事。
它會切塊、嵌入或摘要文字嗎?
不會。它轉換頁面後就停止。切塊和嵌入屬於你正在建置的流程,而會摘要的擷取工具,等於替你決定來源中哪些部分模型永遠看不到。
明天同一個頁面會給我同樣的文字嗎?
只有頁面沒變時才會。這正是保留檔案的理由:擷取內容一旦寫入就固定了,所以一個月後重新執行的任務會讀到相同的輸入,先前的擷取也仍在磁碟上可以比對。
程式碼範例保留得夠好,能讓模型讀懂嗎?
可以,而且帶有語言標籤:在一份九個頁面的技術語料上,語言標籤在 156 個程式碼區塊中保留了 73 個,比較的引擎分別是 20 個和 0 個。標籤來自網站自己的語法醒目提示工具留下的 class,所以絕不是猜的。
可以一次把多個分頁擷取進同一個提示嗎?
不行。沒有批次模式,也沒有爬蟲。它擷取你正在看的頁面。需要多個頁面時,一次一個擷取到資料夾,再讓模型或代理讀取那個資料夾。