LemonWrench — 汽車維修研究
將「如何在 <汽車> 上更換 X」轉化為一套完整的程序、扭力表與標註清楚的圖解,然後再與零件目錄和真實世界的現場筆記進行交叉比對,這樣你就不會因為手冊遺漏的步驟而白費力氣。
主要來源:https://lemon-manuals.la — 約 10,000 輛美加車輛,涵蓋69 個品牌、1960–2025 年,免費,無需登入。包含國產、進口、孤兒品牌 (Pontiac, Oldsmobile, Saturn, Saab, AMC, Geo, Mercury, Suzuki)、歐洲稀有車款、卡車/商用車,以及現代電動車 (Tesla 2012→, Rivian 2022→)。車型年份涵蓋範圍很廣,不限於近期車款:Toyota 和 Ford 擁有連續 66 個車型年份的資料。資料為真實的 HTML 文本(扭力表、容量數據、逐步步驟),圖檔位於 /images25/。非掃描 PDF。
每個車型年份包含兩個資料庫:
| 資料庫 | 來源 | 用途 |
|---|---|---|
| LEMON | 2025 年擷取 | 2010 年以後車款、最新 TSB、完整資料樹、圖說 |
| CHARM | 2013 年 DVD | 1990–2000 年代車款,細節更詳細,但資料樹深度截斷 |
三源則
僅靠維修手冊無法得到答案。此處每個有把握的回覆都來自三個來源:
- 維修手冊 — 提供維修程序與扭力數據。
- 零件目錄 (gmpartscenter.net, gmpartsdirect.com, rockauto 等) — 提供零件編號,以及結構性證據:如果兩個鑄件是獨立的零件,它們就是獨立零件。這就是如何回答「這個支架是外蓋的一部分嗎?」而不需要從照片中猜測的方法。
- 現場共識 (車型論壇、JustAnswer/identifix 討論串、YouTube 字幕) — 維修手冊遺漏的步驟,因為工程師從未實際操作過。應清楚說明某個步驟是現場共識,而非手冊內容。
如果這三者意見不一致,請報告其中的差異。切勿掩蓋問題。
工具
S=scripts/lemon.py
python3 $S <指令>
| 指令 | 用途 |
|---|---|
makes | 取得標準化的品牌名稱 |
years MAKE | 列出該品牌現有的車型年份 |
cars MAKE YEAR [regex] | 列出該年份的車輛,並標記 [LEMON] / [CHARM] |
index VEHICLE [--refresh] | 擷取並快取完整的連結樹(每輛車只需一次) |
| `find VEHICLE TERM... [-n N] [--strict | --any]` |
read VEHICLE TERM... [-k N] | 呈現第 N 個搜尋結果,並自動追蹤中樞子頁面 |
get URL | 透過絕對 URL 呈現單一頁面 |
sub URL | 列出中樞頁面下的子頁面 |
imgs URL / pic URL / note URL TEXT / notes [URL] | 圖像處理流程 + 持久化快取 |
selftest | 解析器檢查,無需網路 |
VEHICLE 是網站路徑去除斜線後的部分:Toyota/2015/Camry LE、Pontiac/2007/G6 V6-3.9L。
工作流程
- 正確解析車輛。
cars MAKE YEAR會列出所有變體。引擎和配備會改變維修手冊 —G6 GT, 4D Sedan, 3.9 1, Automatic是與G6 GT, 4D Sedan, 3.5 N不同的手冊。請說明你使用的是哪個變體。請注意,徽章可能會誤導人:同一個車名可能配備數種引擎,因此請確認排氣量。 - 建立一次索引。 LEMON 單頁資料樹約 5.5 MB / 13,000 個連結,CHARM 分割資料樹約 1.3 MB。快取於
~/.cache/lemon/<hash>.idx;後續查詢為本機文字搜尋。僅在網站新增維修手冊時才使用--refresh。 - 使用網站詞彙進行搜尋 —
removal,installation,disassembly,torque specifications,fluid capacities,valve clearance,component locations,wiring diagram,DTC,labor times。預設允許一個不符的詞彙;--strict要求完全符合,--any用於單詞試探。 - 閱讀,並逐步深入。
read會先顯示搜尋結果,然後顯示最佳頁面的文字,接著追蹤子頁面。CHARM 的資料樹深度會被截斷:中樞頁面通常顯示空白,直到你使用sub <url>再使用get <url>。兩層的逐步深入是正常行為,並非錯誤。 - 回答:編號步驟、精確的扭力值(如手冊所印)、頁面 URL,以及每項聲明的可信度註記(
manual/catalog/field)。
圖像
read/get 會輸出 [FIGURE https://lemon-manuals.la/images25/XXXX/] 行,如果已有快取的描述,則會附加在後。
python3 $S pic https://lemon-manuals.la/images25/GM1557668/ # -> ~/.cache/lemon/img/GM1557668.png
# 檢視圖片後,接著執行:
python3 $S note https://lemon-manuals.la/images25/GM1557668/ "右搖臂蓋,螺栓環,上方的線圈支架"
頁面文字中的圖說(Fig 1: View Of Right Valve Rocker Arm Cover)是圖片的真實標題 — 請使用它們,即使掃描圖片難以辨識,這些圖說也很準確。1 位元線條圖在原始尺寸下看得非常清楚。值得查看的內容:爆炸圖(它們包含文字中遺漏的扭力標註)、線路圖、連接器端視圖。
描述會持久化儲存在 ~/.cache/lemon/imgnotes.json 中 — 只需描述一次圖表,它就會永久成為文字。
超越維修手冊
- 結構性問題(「這是正時蓋的一部分嗎?」)→ 查詢零件目錄。獨立的零件編號加上獨立的墊片,就代表獨立的鑄件。零件目錄圖表也會告訴你某個緊固件屬於哪個子總成。
- 拆卸空間問題(「是什麼擋住了這顆螺栓?」)→ 查詢現場來源。搜尋
<year> <model> <engine> "<部件>" bracket bolt並閱讀論壇/JustAnswer 討論串;經銷商技師會發布遺漏的步驟。 - 是否需要特殊工具(
壓入式皮帶輪,Torx,雙頭螺栓)→ 查閱拆卸程序的預備步驟;其中會列出特殊工具(例如J 25034-C)。 - 無法識別零件的螺栓扭力 → 透過部件名稱查詢扭力表,然後透過零件編號確認鑄件。同一引擎上外觀相似的支架通常具有不同的扭力規格(例如相鄰部件分別為 25 N·m 和 50 N·m)。
回答規則
- 精確引用扭力值,包含全部三種單位:
34 N*m (350 kgf*cm, 25 ft*lbf)。 - 明確指出低扭力緊固件(汽門蓋、塑膠/複合材料蓋):在鋁合金上鎖得過緊是導致重複洩漏和滑牙的首要原因。
- 路徑中的
[09/2014 - ]是修訂日期 — 該頁面從那時起適用。 - LEMON 頁面通常會說明該手冊「與下列車型變體相同,但可能工時、油液和輪胎配適度除外」 — 請重複使用而非重新搜尋。
<vehicle>/Labor Times/列出拆裝操作;如果顯示「僅適用於不同的車輛變體」,請使用其所命名的變體。- 不包含的內容?請明確說明,並指出最接近的涵蓋年份。切勿編造規格。
- 順序很重要:給出先決條件鏈(皮帶 → 附件 → 支架 → 蓋子),而不僅僅是蓋子螺栓。
交付成果
將結果撰寫為獨立的 Markdown 筆記,而非聊天文字:
- 前置中繼資料(
tags,vehicle,job,status,updated) - 狀態提示 — 說明工作的實際進度
- 首先直接回答阻礙性問題
- 按側/部件列出編號程序
- 一個涵蓋所有觸及緊固件的扭力表
- 附圖說的圖片嵌入
- 來源/可信度表格 — 聲明、來源、已驗證 / 現場共識
請參閱 examples/ 以取得完整的工作筆記範例。
注意事項
- URL 區分大小寫,品牌名稱拼寫需與網站一致(
Dodge and Ram,Mercedes Benz);canon_make功能會處理此問題,但手動使用 curl 則不會。 - 每個目錄 URL 的結尾斜線都很重要。
/bundle/的 zip 下載已停用(303 →/static/sad.html)。robots.txt也禁止/bundle/。/hyperlink/...URL 是交叉引用解析器,而非內容。- 路徑中包含版本標籤和
%2F編碼的斜線:請僅擷取工具所輸出的絕對 URL;重新引用解碼後的路徑會導致 404 錯誤。 - 橫幅「暫時伺服器備份 / 可能速度較慢」會被解析器跳過;請允許 120 秒的超時時間。
- 主機故障時的鏡像站點:
lemon-manuals.org.ua,lemon-manuals.gy,lemon.dogeware.me— 可透過LEMON_BASE=https://…覆蓋。 - Miniforge/pyenv 的 Python 通常沒有附帶 CA 憑證套件;
lemon.py會回退到/etc/ssl/certs/ca-certificates.crt。
驗證
python3 scripts/lemon.py selftest # 預期輸出:selftest OK