# TAICA 課程筆記 SOP(唯一真實來源) > 這份是「每週怎麼把一堂課變成筆記」的完整手冊。給 AI 讀,也給主理人查。 > **任何做筆記的 session/agent,動手前先讀完這份。** 對話被壓縮也不怕,流程全在這裡。 > 每次改流程,就改這份,並在最下面「版本紀錄」加一行。 > > 目前版本:**v2.4(2026-10-01)** --- ## 0. 主理人是誰、要什麼(所有決定的根據) - 碩士生,朝陽科大,修兩門 TAICA 課:**自然語言處理(NLP,清大高宏宇)**、**人工智慧導論(AI,成大朱威達)**。 - 兩門課**期末都是英文考試**。所以筆記要同時有:中文理解 + 考卷上會出現的英文原句。 - 要**只看筆記就能學會**,內容高度 ≥ 影片,而且要講得比老師更好懂(五歲版、例子、前置知識)。 - 要**樹狀**:學習主頁 → 課程 → 週 → 章節。隨時知道自己在哪、影片幾分,可以只讀一小段。 - **畫面要簡潔**(2026-09-26 主理人明講):不要 emoji、不要多餘 icon、不要一堆不同元素疊在一起。 單純、直接、好讀。詳見第 4 節「風格鐵律」。 - 每週做,不要累積負債。先做完,再一輪一輪改。 ### A4 拼貼構想(未來才做,現在只要資料庫撐得住) - 期末**也許**能帶一張 A4(**尚未確認**,老師沒講過)。 - 主理人的做法不是「印一張正式文件」,而是:**用極小字印好幾張,剪下來拼貼到一張 A4 上**。 印表機四邊印不到,但拼貼後整張紙每一吋都能用。 - 所以 A4 的素材是「**一小塊一小塊可以剪下來的方塊**」,不用好看、不用正式,要**塞得多、自己看得懂**。 - 現在不做 A4。現在只做**概念資料庫**,等考試範圍和形式確定,再從資料庫挑重點、排成可拼貼的小方塊。 - 資料庫的「A4 行」欄位就是一個方塊的內容:英文為主,可夾極短中文關鍵字幫自己看懂。 --- ## 1. 位置總表 ### 本機 | 東西 | 路徑 | |---|---| | 課程根目錄 | `C:\D槽\TAICA課程\` | | **AI 課程網站(投影片正本)** | https://mmcv.csie.ncku.edu.tw/~wtchu/courses/2025f_AI/index.html → `lectures.html`,PDF 在 `Lectures/<檔名>.pdf`。**還沒講的章節連結藏在 HTML 註解裡,但檔案已經能下載**(2026-10-01 這樣拿到 Ch12、Ch13;Ch14、Ch19 也在) | | **NLP 課程 GitHub(投影片、影片網址)** | https://github.com/IKMLab/NTHU_Natural_Language_Processing(README 週次表;本機 clone 在 `自然語言處理\NTHU_Natural_Language_Processing\`) | | AI 各週 | `人工智慧導論\第N周YYYMMDD\`(逐字稿 `W{n}_人工智慧導論_朱威達.逐字稿.txt`) | | AI 投影片 PDF | `人工智慧導論\投影片\*.pdf`;文字版 `人工智慧導論\投影片\_text\*.txt`(每頁用 `=== pN ===` 分隔) | | AI 投影片圖 | `人工智慧導論\投影片圖\` | | NLP 各週 | `自然語言處理\第N周YYYMMDD\`(逐字稿 `W{n}_自然語言處理_高宏宇.逐字稿.txt`) | | NLP 投影片 | `自然語言處理\NTHU_Natural_Language_Processing\2026\Slides\*.pdf`;文字版在同層 `_text\` | | 工作區(草稿、合併逐字稿、停車場) | `C:\D槽\TAICA課程\_work\notes-v2\` | | 每堂課的草稿 | `_work\notes-v2\<課-週>\`(例 `ai-w2`),內有 `transcript_merged.txt`、`chNN.md` | | 停車場(不能自己決定的事) | `_work\notes-v2\00-parking.md` | | 各課接手卡 | `人工智慧導論\_接手卡.md`、`自然語言處理\_接手卡.md` | ### 腳本(全部用這個 Python 跑) ``` C:\Users\user\.cache\meeting-record\venv\Scripts\python.exe ``` 其他 Python 沒有 opencc/faster-whisper/pymupdf,會報 ModuleNotFoundError。 | 腳本(`C:\Users\user\.claude\scripts\`) | 用途 | |---|---| | `transcribe_class.py <音檔>` | 音檔 → 逐字稿(faster-whisper large-v3,約 12 倍速) | | `fix_transcript.py <逐字稿>` | 簡轉繁 + 已知錯字修正(原檔留 `.orig.txt`) | | `merge_transcript.py <逐字稿> <輸出> --secs=90` | 合併成約 90 秒一段,好讀 | | `slides_to_text.py ` | 投影片文字 → `_text\<檔名>.txt` | | `slides_to_png.py <輸出資料夾> <頁> --dpi=110` | 投影片某頁 → PNG(**要寫 `--dpi=110`,有等號**;寫成 `--dpi 110` 會被忽略、改用預設 150) | | `quote_check.py <逐字稿> --file quotes.txt` | **查老師原話是不是真的在逐字稿裡**(見第 6 節) | ### Notion | 頁面 | ID | |---|---| | 學習主頁 | `3e6fc631-b030-8180-a7bf-e50a5b7c8191` | | AI 課程頁 | `3e6fc631-b030-8131-b213-f0a3d93fe91d` | | NLP 課程頁 | `3e6fc631-b030-81b4-a9e8-f91f3411f61f` | | 概念資料庫 | database `54e53dc6c92144bda205cac0e48d7825`;data source `collection://6fc4ce25-cd77-4295-b3e9-8756987a0340` | | 前置知識補給站 | `3e6fc631-b030-8114-834b-dbcba71beab6` | | 封存(舊筆記,只當漏看檢查表) | `3e6fc631-b030-81ef-8963-e93938b69f54` | | 舊 NLP W2 筆記 | `3defc631-b030-81fa-b207-fa9994c44a6f` | | 舊 NLP W3 筆記 | `3e5fc631-b030-81ba-80e2-efdcb7750bdb` | | AI W1 週頁(v2 舊樣式,待改簡潔版) | `3e6fc631-b030-81b4-bd33-ca8e0a0c22b5` | ### 各週影片 | 課-週 | 日期 | YouTube | 長度 | |---|---|---|---| | AI-W1 | 9/10 | `KWGgi100YLY` | 2:59:58 | | AI-W2 | 9/17 | `hNZQIO0q74o` | 2:35:52(**開頭缺幾分鐘**:HW1 說明前段) | | AI-W3 | 9/24 | `S1km7opW6rw` | 2:57:10(0:00:42–0:09:57 沒聲音) | | AI-W4 | 10/1 | 非同步,三支 2021 錄影:Ch12 Part 2 `iuAeHIfOscA`、Ch12 Part 3 `bJM9vgr6iy4`、Ch13 Part 1 `MxNi_mjW4qs` | 41:39 + 31:39 + 48:19(網址是助教在群組公告的) | | NLP-W2 | 9/17 | `MnA5KUETSg4` | 3:00:07 | | NLP-W3 | 9/24 | `g0QE6O17BWE` | 2:51:05 | | NLP-W4 | 10/1 | 正課 `7kgOuhuIjvY` + 助教 PyTorch 教學 `sg22677pUEs` | 1:19:35 + 1:26:11(**兩支影片**:老師上半場,下半場請大家看 2024 年錄的助教課;網址都在課程 GitHub README 的 W4 列) | ### 投影片對應(檔名的 W 不等於上課週) | 課-週 | 用的投影片 | |---|---| | AI-W2 | Ch2 後半(p.13 起)、Ch3 全部、Ch4 開頭 | | AI-W3 | Ch4、Ch12 p.2–17(2026-10-01 從課程網站拿到,第 07 章已重審),Ch12 從 2:29:37 開始。課本 Ch5–10 整段跳過。Ch4 PDF 的 p.27 起,投影片上印的頁碼是 52–63(本手冊一律用 PDF 頁序 p.N) | | AI-W4 | Ch12 中後段(機率分布、聯合分布推論、獨立、貝氏定理、條件獨立、單純貝氏)、Ch13 開頭(貝氏網路的表示與建構)。投影片:01 Ch12 p.11、p.18–26/02 p.27–39/03 p.40–47/04 p.48–55/05 Ch13 p.2–8/06 p.9–10/07 p.11–17 | | NLP-W2 | `W1_NLP_brief_v2.pdf` p.3–64(p.2 目錄跳過;講到貓/狗/卡車那張圖) | | NLP-W3 | `W1_NLP_brief_v2.pdf` p.64–95,**2:12:42 起**換 `W2_Word embeddings and Language Modeling (RNN)_v2.pdf` **p.1–17**(停在困惑度)。作業一說明用 `2026\Assignments\Assignment1\NLP_HW1_word_emb.pdf`。老師說不講 GloVe(brief p.91)但實際有簡短帶過 | | NLP-W4 | 正課:`W1_NLP_brief.pdf` p.53(回頭補 BM25)→ `W2_Word embeddings and Language Modeling (RNN).pdf` p.17–47(停在 activation function 表)。助教課:`pytorch_tutorial_NTHU_NLP.pdf` p.1–62。**10/1 老師把 `_v2` 兩個檔改回沒有 `_v2` 的檔名**(頁數、頁碼不變);W2、W3 設定還指著 `_v2`,舊檔已從 git 歷史救回原位(未被 git 追蹤的本機檔) | ### 下一堂從哪裡接 | 課 | 下一堂接續點 | |---|---| | AI | Ch13 Part 2(貝氏網路的推論);W4 的 Ch13 Part 1 停在「節點順序與網路精簡性」 | | NLP | `W2_Word embeddings and Language Modeling (RNN).pdf` p.48(In text viewpoint、FFN、RNN) | --- ## 2. 每週管線(節點) 每個節點:做什麼 → 產出 → 注意。之後要改流程,就改對應節點。 | 節點 | 做什麼 | 產出 | 注意 | |---|---|---|---| | N1 取得 | 拿 YouTube 網址 → `yt-dlp -f bestaudio` → `ffmpeg -vn -ac 1 -ar 16000 -c:a aac -b:a 48k` | 週資料夾裡的 `.m4a` | 標題常寫錯年份,以網址為準 | | N2 逐字稿 | `transcribe_class.py`(依路徑自動選課程詞彙) | `.逐字稿.txt`,每行 `[HH:MM:SS] 文字` | 約 15 分鐘 | | N3 錯字 | `fix_transcript.py` | 原地更新,原檔 `.orig.txt` | 新錯字加進腳本的 ASR 表 | | N4 合併 | `merge_transcript.py --secs=90` | `_work\notes-v2\<課-週>\transcript_merged.txt` | 引用時間要回原檔 grep 精確行 | | N5 投影片 | `slides_to_text.py`;需要圖時 `slides_to_png.py` | `_text\*.txt`、PNG | `[IMAGE-ONLY]` 頁要看圖 | | N6 切章節 | 讀合併逐字稿+投影片文字,照老師主題切 | 章節計畫(章號、標題、起訖時間、投影片頁、段落時間點) | 每章 15–40 分鐘;休息是天然分界;**已知的考試規則不重講** | | N7 建殼 | 在課程頁下建週頁,再**依序**建各章空頁 | 週頁 ID、各章 ID/URL | 一定要依序建,側邊欄順序=建立順序 | | N8 寫章節 | 照第 3 節模板寫 | `chNN.md`(Notion 寫法)+概念清單 | 圖用佔位符 `[[IMG: 路徑 | 圖說]]` | | N9 查核:正確 | 原話、時間、英文句子逐一核對 | 在 `chNN.md` 原地修正 | 見第 6 節 | | N10 查核:完整+風格 | 對照逐字稿該時段:重點有沒有漏、夠不夠懂;風格鐵律 | 原地修正 | 見第 4、6 節 | | N11 發佈 | 上傳圖片 → 替換佔位符 → `replace_content` 寫進章節頁 → fetch 回來確認 | Notion 章節頁 | 見第 7 節 | | N12 週頁 | 填週頁(章節表、這週要記得) | Notion 週頁 | 見第 3.2 | | N13 概念入庫 | 所有概念集中去重 → 新增或更新資料庫列 | 資料庫列 | 見第 5 節 | | N14 本週概念表 | 在週頁最後建 linked view(篩 週=該週) | view | `create-view` 一定加在頁面最尾 | | N15 漏看檢查 | 拿舊筆記(封存)比對新筆記,漏的補上 | 修正後的章節頁 | 只有 NLP W1–W3、AI W1 有舊筆記 | | N16 收尾 | 更新課程頁週次表、兩張接手卡、本手冊版本紀錄、停車場 | — | | ### 自動化 v2.2:省額度版(2026-09-26 起的預設做法) 全部在 `C:\D槽\TAICA課程\_work\notes-v2\workflows\`。Python 一律用 `C:\Users\user\.cache\meeting-record\venv\Scripts\python.exe`。 | 檔案 | 是什麼 | |---|---| | `lectures.json` | 每堂課的設定(影片 ID、逐字稿、投影片、Notion 課程頁、舊筆記、沒投影片的章) | | `1_segment.js` | N6 切章節(Workflow,每堂一個 Opus) | | `0_shell.js` | N7 建週頁、概念表、空章節頁(Workflow,Sonnet);寫 `<課-週>\shell.json` | | `make_brief.py <課-週>` | 產生每章的**章節包** `chNN.brief.md`(第一行、各段標題與連結、老師強調處、該章逐字稿、該章投影片文字、公式圖、寫作規則) | | `writer_rules.md` | 塞進章節包的精簡寫作規則(本手冊 3.1/4/5/6 節的濃縮版) | | `make_args.py <課-週>` | 看完成標記,產生 Workflow 的 args(只做沒做完的步驟) | | `4_lean.js` | N8 寫(Opus,讀章節包)→ 一道合併審稿(Opus,先跑 `check_note.py`)→ 發佈(Sonnet)→ 有舊筆記才做漏看檢查 → 概念去重(Sonnet)與寫入(Haiku) | | `token_report.py ` | 量每個步驟花了多少 | | `C:\Users\user\.claude\scripts\check_note.py` | 不用 AI 的機械檢查:符號、callout、時間連結、老師原話、Exam-ready 英文 | **開新對話跑一堂課(已切好章節、已有殼頁的,例如 ai-w3)**: 1. `python make_brief.py ai-w3` 2. `python make_args.py ai-w3 > args_ai-w3.json` 3. 用 Workflow 工具跑 `4_lean.js`(`scriptPath`),`args`=`args_ai-w3.json` 的內容。 4. 回報的 `missing` 不是空的 → 再做一次 2、3(只補沒做完的)。 5. 收尾:課程頁該週「狀態」改「完成」並連到週頁;`token_report.py` 量花費,記進 7.5 節實驗紀錄。 **全新的一週(例如 W4)**:N1–N5(下載、逐字稿、錯字、合併、投影片文字)→ `lectures.json` 加一筆 → 跑 `1_segment.js`(**args=這週的設定陣列**,格式同腳本裡的 LECTURES,範例 `args_segment_nlp-w4.json`;不用再改程式碼),主 session 看一遍切法,存成 `_work\notes-v2\<課-週>\segment.json` → `0_shell.js`(args=lectures.json 那筆加 key)→ 上面 1–5。 **一週有兩支影片時**(2026-10-01 NLP-W4 起;課表上 NLP W6、W7 的 Python 教學週大概也會這樣): - `lectures.json` 那筆的 `vid`/`transcript` 放正課,另加 `"parts": {"torch": {"label", "vid", "dur", "transcript"}}` 放第二支。 - `1_segment.js` 的 args 放兩筆(第二筆加 `"part": "torch"`),一支影片一個小幫手。 - 主 session 合併成一份 `segment.json`:第二支的章接在後面重新編號、加 `"part": "torch"`、章名前加「PyTorch:」之類的前綴。時間保留那支影片自己的時間。 - 之後 `make_brief.py`、`make_args.py`、`4_lean.js`、`0_shell.js` 都會看 `part`,自動用那一章的影片 ID 和逐字稿(麵包屑、YouTube 連結、check_note 都對)。 - 舊影片重播(例如 2024 年錄的助教課)裡提到的作業、日期,不要寫成今年的資訊。 **完成標記**(在 `_work\notes-v2\<課-週>\`):`chNN.md`+`chNN.concepts.json`(寫完)、`chNN.review.done`、`chNN.pub.done`、`critic.done`、`concepts.done`。舊版的 `chNN.acc.done`+`chNN.cov.done` 兩個都在也算審完。 ### 自動化:兩支 Workflow 腳本(v2.1,已被 v2.2 取代,留作參考) N6–N15 已經寫成兩支可以重跑的 Workflow 腳本,放在 `_work\notes-v2\workflows\`: | 腳本 | 做哪些節點 | 輸入 | 輸出 | |---|---|---|---| | `1_segment.js` | N6 切章節(每堂一個 agent) | 腳本裡的 `LECTURES` 設定(課、週、日期、影片 ID、逐字稿、投影片、已知事實) | 章節計畫;主 session 另存成 `_work\notes-v2\segments.json` | | `2_build.js` | N7 建殼 → N8 寫 → N9 查核正確 → N10 查核完整+風格 → N11 發佈 → N15 整堂把關 → N13 概念去重與入庫(含前置知識關聯) | `args`=每堂的章節骨架 `[{key, chapters:[{num,title,start,end}]}]`;腳本裡的 `CFG` 設定每堂的路徑與 Notion 課程頁 | Notion 週頁、章節頁、概念列 | **下週怎麼用**(主 session 做): 1. N1–N5 照上表手動跑(下載、逐字稿、錯字、合併、投影片文字)。 2. 改 `1_segment.js` 的 `LECTURES`(新的一週),用 Workflow 工具跑;把結果存成 `segments.json`,**主 session 先看一遍章節切法**。 3. 從 `segments.json` 產生骨架,改 `2_build.js` 的 `CFG`(新的一週),用 Workflow 工具跑,`args`=骨架。 4. 跑完做 N16 收尾。 每章草稿留在 `_work\notes-v2\<課-週>\chNN.md`,之後要改某章,改草稿再重發佈最方便。 --- ## 3. 模板 ### 3.1 章節頁 標題:`NN 章名(h:mm–h:mm)`,例:`03 BFS 與 DFS(0:44–1:10)`。**不設 page icon。** 內容依序(**不要多加區塊**): ``` 人工智慧導論 › W2 › 03|影片 [0:44:08–1:10:20](https://www.youtube.com/watch?v=ID&t=2648s)|投影片 Ch3 p.12–20|上一章 [02 章名](url)|下一章 [04 章名](url) ## 重點 - 三點。每點一到兩句中文,讀完就知道這章在講什麼。 ## Exam-ready - **Term**: "slide sentence copied verbatim."(Ch3 p.14) - **Term**: "..."(Ch3 p.15)【老師強調】(1:02:10) ## [0:44:08](https://www.youtube.com/watch?v=ID&t=2648s) 段落標題 白話摘要,二到四句,預設展開。 (需要時,三選一:一張投影片圖/一個表格/一個 mermaid 流程圖)
用生活例子講,BFS 在做什麼? 內容。
老師原話是什麼? 「老師的話」(0:45:12)
## [下一段時間](連結) 下一段標題 ... ## Self-check
Q1. Compare BFS and DFS in terms of completeness and space complexity.(中文:比較 BFS 和 DFS 的完整性與空間複雜度) **Answer**: English answer, exam style. 中文:把答案完整講一遍,看不懂英文的人也知道怎麼答。
讀完了嗎?下一章:[04 章名](url)|回到週頁:[W2(9/17)](url) ``` - **Exam-ready 每一行英文下面,一定要有一行縮排的「中文:」解釋**(2026-09-26 主理人:英文很棒但看不懂就沒用)。寫法: ``` - **Term**: "slide sentence."(Ch3 p.14) - 中文:先講句子意思,再補一句白話;難字括號附中文。 ``` - **全頁最後一行是「下一章」連結**(週的最後一章連到下一週第一章,沒有就只寫回到週頁)。章節包第 1b 節已經算好。 - 第一行(麵包屑)是一般段落,不要包 callout。 - 「重點」「Exam-ready」「每段白話摘要」預設看得到;其他全部收進摺疊。 - 摺疊的標題**寫成問句**,不加任何前綴符號。可用的問句類型(依需要,不必每段都有): - 用生活例子/五歲小孩聽得懂的話講?(ELI5) - 它到底怎麼運作?(詳細、手算例子、流程) - 老師原話是什麼?(逐字稿原句+時間) - 要先懂什麼?(前置知識:線性代數、機率、演算法…;短版在這,長版進補給站) - 別人怎麼教這個?(驗證過的外部連結,見第 6 節) - Self-check 2–4 題,英文考卷口吻,答案收摺疊,答案後補一句中文重點。 - 長度:全文不超過 16,000 字元(寫作規則、審稿、check_note.py 都用這個數字,2026-09-26 統一)。不要為了壓字數反覆刪改;寧可多切一章,不要一章塞爆。 ### 3.2 週頁 標題:`W2(9/17)這週主題一句話`,例:`W2(9/17)Agent 類型、搜尋演算法`。**不設 page icon。** ``` 人工智慧導論 › W2(9/17)|影片 [YouTube](https://www.youtube.com/watch?v=ID)(2:35:52) 這週一句話:…… ## 章節(照順序讀) 各章子頁(01、02…,一打開就看到,點了就進去;2026-09-26 主理人:章節不能埋在最底下)。不另做章節表格。 ## 這週要記得 1. 三到六條。作業、老師明講的考試訊號、下週要先準備什麼。 (已知的考試規則不重複;有新資訊才寫) ## 本週概念 (N14 會在這裡加 linked view) ``` 特殊狀況用一句「注意:……」寫在「這週一句話」下面(例:AI W2 影片開頭缺幾分鐘)。 ### 3.3 課程頁與主頁 - 課程頁:麵包屑一行 → `## 週次導覽` 表(週|日期|在講什麼|狀態)→ `## 考試與作業` 精簡版。 - 主頁:一段說明 → 兩門課 → 概念資料庫 → 補給站 → 封存。 - 都不設 icon、不用 callout。 --- ## 3.4 最高原則:Notion 是主教材,不是輔助(2026-10-04 主理人明講) 主理人看不懂老師的英文簡報、數學與底層內容,所以才要 Notion 筆記。**標準是:不看影片、不看投影片,只讀 Notion 也學得會。** 每章寫完用三題自我檢查(寫作規則 `writer_rules.md` 開頭有完整版): 1. 收起來的數學段,外面有沒有一句白話說「這段在解決什麼、算出來代表什麼」。 2. 每張英文投影片圖,下面有沒有中文重點翻譯與說明。 3. 老師沒解釋的底層知識(數學名詞、程式名詞、前幾週概念)有沒有用白話補上。 「數學段跳過提示」是給看影片時用的;筆記本身不能因為跳過而讓概念斷掉。 ## 3.45 作業優先(2026-10-04 主理人明講) 策略:兩門課都把重心放在作業、衝高分;期末考是弱項,靠作業分數讓考試輕鬆。(AI:作業 40%+專題 30%+考試 30%;NLP:作業 75%+考試 25%,而且考題考作業過程與 insight。) - 每章在「## 重點」下面加一行「**跟作業的關係:**」——這章哪個概念或工具會用在哪份作業(已公布的作業寫作業名;還沒公布就寫「目前看不出直接關係」,不要硬掰)。 - 作業說明、程式教學(例如 NLP W4 的 PyTorch)**不可當成「可跳過」**:程式碼仍收摺疊,但摺疊外要寫清楚「寫作業時這段用來做什麼」。 - 週頁「這週要記得」第一條固定是最近的作業期限。 ## 3.5 概念優先(2026-09-26 主理人明講) 主理人只想懂概念(例:模擬退火=投資理財的比喻),不想補線性代數、微積分,也不想看程式碼、座標軸圖。 依據:AI 考試幾乎都是問答題、不考手寫程式(W1 1:16:52);NLP 不考算式、考作業過程與 insight(W3 1:47:41、2:48:36)。 - 預設看得到:白話摘要+一句生活比喻+考試可能怎麼問+用文字說出演算法步驟。 - 數學、公式、手算、程式碼、座標圖:收進「(進階,可跳過)」摺疊,每段最多一個,不寫長篇計算。 - 不確定:AI 會不會考「一步一步跑演算法」(例如 A* 展開順序)老師沒講;每個演算法保留一個短的手算例子在進階摺疊當保險。 - AI 作業二、四要寫程式(個人),等作業公布再針對補,不在筆記裡預先教。 - 已完成的 AI W2、W3 不回頭改標題(成本高),讀的時候跳過「它到底怎麼運作?」「要先懂什麼?」摺疊即可。 - **數學段跳過提示**(2026-09-26 主理人:看影片時老師突然講一段公式就聽不懂,想知道從哪跳到哪): 每章第一行下面放「跳過提示:(起–訖) 老師在做什麼,聽不懂可以直接跳到 [時間](連結),接著講「…」」;週頁「## 章節」後面放「## 數學段地圖(聽不懂可以跳過)」表格。 找法:`find_math_segments.py`(程式,依數學字密度抓候選)→ AI 對照逐字稿確認與補漏。已發佈的四堂用 `7_math_skips.js` 補上;新的週次由章節包第 3b 節+寫作規則直接寫。 ## 4. 風格鐵律(2026-09-26 主理人明講「畫面要簡潔」) 1. **不用 emoji**。標題、摺疊標題、內文、頁面 icon、表格都不用。 2. **不用 callout**。要提醒就寫一段以「注意:」開頭的粗體文字。 3. **每一段最多一種視覺元素**:一張圖、或一個表格、或一個 mermaid,三選一,不要疊。 4. 時間戳寫成純文字 `(0:45:12)` 或 YouTube 連結,**不要用 code 樣式**(灰底小框)。 5. 考試訊號只在有老師證據時標,用純文字 `【老師說會考】【老師強調】【老師說不考】` +時間。 「我判斷是重點」不在內文標(太多會變噪音),只記在資料庫。 6. 不要裝飾性分隔線、不要彩色文字、不要多層巢狀摺疊(摺疊裡最多再放一個表格或清單)。 7. 中文用台灣用語。專有名詞第一次出現,括號補一句白話。 --- ## 5. 概念資料庫 欄位與填法: | 欄位 | 填法 | |---|---| | Name | 英文術語,考卷上的寫法 | | 中文 | 中文名 | | 類型 | 概念/演算法/公式/人物事件/前置知識/行政 | | 考試訊號 | `老師說會考`/`老師強調`/`核心(我判斷)`/`老師說不考`/空白(不太會考) | | 證據 | 前兩個與「老師說不考」**必填**:老師原句+時間(必須過 quote_check) | | Definition (EN) | **投影片原文逐字抄**;投影片沒有才用課本/老師英文,並註明來源 | | 白話 | 一句中文 | | A4 行 | ≤150 字元,英文為主,可夾極短中文關鍵字。**一列=一個可剪下來拼貼的小方塊** | | 出處 | 章節頁 URL | | 影片時間 | `h:mm:ss` | | 投影片 | `Ch3 p.14` 或 `W1_NLP_brief p.40` | | 週 | `AI-W2`、`NLP-W3` 這種「課程-週」寫法(兩門課的 W2 不會混) | | 課程 | AI/NLP | | 我懂了嗎 | **主理人自己填**:不懂/半懂/懂。A4 優先放不懂、半懂 | | 前置知識 | 關聯到其他列(例:Back-propagation → Artificial Neuron) | 去重規則: - 一個概念只有一列。新週次遇到已存在的概念 → **更新那一列**:在「週」「課程」加上新值;定義有更好的投影片原文就補在後面。 - 比對用英文名稱(忽略大小寫、單複數、括號內縮寫)。拿不準就當同一個,寫進停車場讓人確認。 --- ## 6. 查核規則(N9、N10) ### 正確(N9) - **老師原話**:每一句「」引號裡的老師的話,都要跑 `quote_check.py`。MISS 的: - 先 grep 2–4 個字的片段看是不是逐字稿錯字;是錯字 → 保留原話但改用正確字。 - 找不到 → 改寫成轉述(不加引號),或刪掉。**不准保留找不到的引號。** - **時間戳**:標的時間要落在老師真的講那件事的 ±30 秒內(回原逐字稿看)。 - **Exam-ready 英文**:每一句都要能在投影片 `_text` 裡找到(允許刪節號)。找不到的: 改用投影片原句,或標 `(課本用語)`/`(老師口頭)`。 - **考試訊號**:`【老師強調】` 等必須有原句+時間,而且原句要真的在表達「重要/會考/不考」。 老師只是順口說「很重要」不算強調;要有明確的強調語氣或重複。拿不準就不標。 - **老師講錯或跟課本不同**:照課本寫,加一句「注意:老師口頭說的是……,考試寫課本版」。 ### 完整+風格(N10) - 對照該章時段的逐字稿:老師花超過 2 分鐘講的每件事,筆記都要有(至少一句白話+需要時一個摺疊)。 - 老師說「這之後會講」「你可能要自己 catch」「這個要懂」的地方 → 一定要補前置知識摺疊。 - 投影片該範圍內有、老師跳過的頁:至少在 Exam-ready 放原句(考試可能考)。 - 風格:逐條檢查第 4 節鐵律。 - 外部連結:只能放**實際打開過**的。YouTube 用 `https://www.youtube.com/oembed?url=<影片網址>&format=json` 驗證(回 200 才算); 其他網頁用 WebFetch 打開。已驗證可用的: 3Blue1Brown 神經網路 `https://www.youtube.com/watch?v=aircAruvnKk`、backprop `https://www.youtube.com/watch?v=Ilg3gGewQ5U`、 李宏毅 CNN `https://www.youtube.com/watch?v=OP5HcXJg2Aw`、李宏毅 AI Agent `https://www.youtube.com/watch?v=M2Yg1kwPpts`、 AIMA 課本官網 `https://aima.cs.berkeley.edu/`。 --- ## 7. Notion 寫法與踩過的坑 - **摺疊**:`
` 換行 `問句` 換行 內容 換行 `
`。子內容**不用自己縮排**,Notion 會自動縮。 - **表格**:``,每列 ``,格子裡可以用 `**粗體**` 和連結。 - **mermaid**:用 ```` ```mermaid ```` 區塊;節點文字用雙引號包起來;換行用 `
`;避免 `()` `:` 以外的特殊符號。 - **連結**:`[文字](網址)`;頁面連結用 `https://app.notion.com/p/<32 碼無橫線 ID>`。 - **不要寫** 裸的 `$`(會被當數學式)、`~~`、`{}`;金額寫「美元」,集合寫文字。 - **YouTube 時間連結**:`https://www.youtube.com/watch?v=&t=<秒數>s`,秒數=時×3600+分×60+秒。 - **圖片上傳**(一張圖一次,upload 只能用一次): 1. `notion-create-file-upload`,參數 `filename`(例 `ai_ch3_p014.png`)。回傳 `upload_url`、`upload_headers`。 2. `curl -s -X POST "" -H "<每個 upload_headers>" -F "file=@<本機 PNG 路徑>"`。 3. 回應裡的 `markdown_source`(或 `suggested_markdown`)直接貼進頁面內容。 4. **同一張圖要放第二次,要重新上傳。** - **update_content 的 old_str 要一字不差**(包含摺疊子行開頭的 tab)。一條不符整批失敗、全部不寫入。 不要拿表格中間的 `
…
` 當錨點。 - **大改用 `replace_content`**(整頁換掉),小改才用 `update_content`。 - **create-view 一定加在頁面最尾**。所以週頁的「本週概念」標題要放最後。 - **資料庫多選欄**的值寫成 JSON 字串:`"[\"AI-W2\"]"`。 - 從資料庫讀回來的文字有 Markdown 跳脫(`\{` `\$` `\~` `\[`),要還原再用。 - **view 模式查詢沒有額度限制**,SQL 模式有(非 Business 方案)。大量讀資料庫用 view 模式。 ### 跑 Workflow 踩過的坑(2026-09-26) - **用量上限**:四堂課一次跑(約 120 個 agent)會撞到帳號的 session 用量上限(第一次跑到第 24 個就停,錯誤訊息 `You've hit your session limit · resets 4:20am`)。 處理:等重置時間過後,用同一個 scriptPath 加 `resumeFromRunId` 重跑,已完成的 agent 會直接用快取,不會重做。 預防:一次只跑兩堂課,或晚上睡前開跑。 - **內容過濾**:沒有投影片的章節(AI W3 Ch12),agent 憑記憶重現課本段落,被 API 以 `Output blocked by content filtering policy` 擋下。 處理:沒投影片時,英文定義一律用自己的話寫、標 `(my wording)`,不背誦課本原文。`2_build.js` 的 `noSlidesNote()` 就是做這件事。 - **agent 寫的「(textbook)」內容是憑記憶**,不是打開課本核對的。之後拿到課本或投影片要再核一次。 - **resume 的快取不可靠(平行管線時)**:`resumeFromRunId` 是照「呼叫順序」比對快取。平行管線每次完成順序不同, 一旦順序錯開,後面全部重跑(2026-09-26 實測:已寫好的 20 章又被重寫,只好中途停掉)。 改用:**每個節點做完寫一個標記檔**(`chNN.acc.done` 之類),重跑前主 session 看標記檔,只把還沒做的節點交給 Workflow。 另外**一次只跑一堂課**,出事只影響一堂。 - **Notion 內部連結會被自動轉成頁面 mention**(顯示成完整標題)。寫 `[文字](Notion 頁網址)` 時, `notion-update-page` 要帶 `preserve_internal_links: true`,才會保留成純文字連結。 --- ## 7.5 額度:錢花在哪、怎麼省(2026-09-26 實測) 量法:`_work\notes-v2\workflows\token_report.py `。數字是「加權 token」=新輸入+1.25×快取寫入+0.1×快取讀取+5×輸出,只用來互相比較。 | 花在哪 | 實測 | |---|---| | 主對話(主理人講需求、AI 理解確認實作),9/17 起同一個 session | 約 3,900 萬;9/25–26 約 1,600 萬 | | 主對話**每回一次話**重讀整段對話 | 約 63 萬 token(=約 6.5 萬加權);回 13 次 ≈ 寫一章 | | 舊流程寫一章草稿(v2.1 writer) | 約 86 萬/章;平均 33 回合、41 次工具呼叫;快取讀取占 45% | | 切章節(一堂) | 約 107 萬 | | 正確性查核(一章) | 約 39 萬 | | 建週頁與殼頁(一堂) | 約 28 萬 | | 用 AI 改 37 列資料庫 | 約 21 萬(用程式幾乎是 0) | **結論:最貴的不是「寫內容」,是「來回找資料」和「對話太長」。** 省額度守則(依省的程度排): 1. **每週開新對話,照本手冊做**。不要把一個 session 用好幾天:對話越長,每回一句話越貴。 2. **平常不開 ultracode 模式**,每週固定流程用固定腳本跑。 3. **章節包(`make_brief.py`)+一次寫完**:資料先打包成一個檔,寫手讀一次、寫一次,不自己去翻逐字稿和投影片。(實驗中,見下方) 4. **機械檢查交給程式**(`check_note.py`),AI 只處理程式標出來的問題。 5. **小幫手用便宜的模型**做機械工作(發佈、寫資料庫)。寫作用哪個模型看實驗結果。 實驗紀錄: | 日期 | 實驗 | 結果 | |---|---|---| | 2026-09-26 | AI W3 第 04 章寫作:舊流程(Opus) vs 章節包+Opus vs 章節包+Sonnet,盲評 | 花費 86 萬/43 萬/46 萬(Sonnet 單價較低,實際額度應更少,不確定多少)。盲評總分 27/**28**/19:章節包+Opus 最好(一樣正確、更簡潔);Sonnet 漏公式、手算太淺,**寫作不用 Sonnet**。採用章節包+Opus,正式草稿換成它(舊版留 `ch04.v21-backup.md`) | | 2026-09-26 | AI W2 完整舊流程(查核兩道+發佈+漏看+概念) | 每章:正確性查核 45 萬、完整性查核 63 萬、發佈 22 萬;整堂漏看 52 萬(只補 1 條);概念入庫約 190 萬。查核抓到的:老師原話 126 句 0 錯、時間 0 錯(→程式就夠);真的有用的是數學/說法錯 4 處、考試訊號降級數處、憑記憶的課本句改寫、補投影片原句 5–11 條/章 → v2.2 合併成一道審稿,原話與時間交給程式 | | 2026-09-26 | **v2.2 省額度版實跑 AI W3**(6 章已有草稿、1 章新寫) | 每章:審稿 34 萬(舊流程兩道查核 108 萬,**省 69%**)、發佈(Sonnet)29 萬(舊 Opus 22 萬,token 反而較多,Sonnet 單價較低所以實際額度應差不多,不確定)、新寫一章 34 萬。**每章總計約 97 萬(舊約 216 萬,省 55%)**。概念階段整堂約 245 萬,比舊的還貴,而且 Haiku 做「前置知識關聯」只做一步就寫完成標記(沒做完)→ 概念階段要改成程式處理(見停車場 P7、P8) | | 2026-09-26 | **NLP W2 改版實測**(v2.3:8 章舊草稿一道「審稿+改版+補中文」→ 發佈 → 漏看 → 概念;同一個 run 也照做 NLP W3 7 章) | 每章:審稿+改版 96 萬(W3 84 萬;Opus 平均 27 輪,輸出是 AI W3 單純審稿的 3.6 倍,因為等於重寫)、發佈 34 萬(W3 38 萬)、補概念檔 16 萬(6 章)。整堂:漏看 124 萬(補 3 條;W3 101 萬補 5 條)、概念 303 萬(去重 158+寫入 103+關聯 43;W3 453 萬,關聯為了找 9 個對不到的名稱花 161 萬)、週頁 12 萬。**每章總計約 197 萬(W3 約 202 萬)**,比 AI W3「v2.2+事後補中文」約 156 萬貴,多在改版、漏看、概念。整個 run 最貴:審稿 42%、概念 24%、發佈 17%。浪費點:為了壓字數反覆刪字(四處字數上限不一致)、驗算主理人不看的數學、每章讀 1–10 張投影片圖。改進做法見 `_work\notes-v2\reports\2026-09-26_最佳化報告.md` | | 2026-09-26 | **NLP W2 第 06 章:改版 vs 重寫**(舊草稿經審稿改版 vs 只讀章節包重寫),盲評,照主理人優先順序加權 | 花費:改版 69 萬+補概念檔 15 萬=83 萬;重寫 93 萬(Opus 27 輪,其中 12 輪在壓字數)+之後審稿約 34 萬=約 127 萬。分數(滿分 30)改版 26、重寫 27:改版贏在概念比較(稀疏 vs 稠密比較表、IDF 課本例子)與「公式不用背」提醒;重寫贏在中文解釋與考試準備(Exam-ready 一行一句附難字、Self-check 全是問答題)、較簡潔。差 1 分,選便宜的改版,NLP W3 照改版做。評審給的 4 條寫作規則(Exam-ready 一行一句、附難字、Self-check 不出計算題、正文不放 O(...) 與代號)**還沒寫進 writer_rules.md** | | 2026-10-01 | **NLP W4(9 章,兩支影片)與 AI W4(7 章,三支影片、無投影片)**,v2.4 一週多影片,同一天跑完 | NLP W4:每章寫 26 萬+審 22 萬+發佈 21 萬=**約 70 萬/章**(AI W3 約 97 萬,省約 28%);切章 91 萬(2 支)、建殼 22 萬、概念 182 萬、數學段地圖 13 萬,整堂約 936 萬(另補資料庫約 17 萬原始 token)。AI W4:每章寫 22 萬+審 18 萬+發佈 18 萬=**約 58 萬/章**(沒投影片,章節包較小);切章 72 萬(3 支)、建殼 21 萬、概念 167 萬、數學段地圖 12 萬,整堂約 678 萬。出事的地方:NLP 概念寫入用 Haiku,回報建了 23 列其實沒建(網址是編的)→ 主 session 補建 24 列,`4_lean.js` 改 Sonnet+寫完查回來;下午 Notion SQL 查詢額度用完 → 去重與驗證改 view 模式。AI W4 照新版跑,53 個網址全部是真的 | --- ## 8. 版本紀錄 | 版本 | 日期 | 改了什麼 | 為什麼 | |---|---|---|---| | v1 | 2026-09-25 | 一堂一頁 + 術語摺疊卡 + 頂部術語總表 | 主理人要解釋老師沒講的詞 | | v2 | 2026-09-25 | 改樹狀(主頁→課程→週→章節)+ 共用概念資料庫 + 英文 Exam-ready + 摺疊問句;舊筆記封存 | 英文考試、只看筆記就要能學會、要能產 A4 | | v2.1 | 2026-09-26 | **簡潔風格**:去 emoji/icon/callout,每段一種視覺元素,時間可點 YouTube;資料庫選項去 emoji;A4 改為「拼貼小方塊」構想;本次先做兩門課 W2、W3,W1 暫不動 | 主理人:畫面太亂;A4 是拼貼不是正式文件;W1 與考試規則先不重做 | | v2.3 | 2026-09-26 | **讀起來順**:週頁章節置頂(不再埋在最底下、不另做章節表);章節頁最後一行「下一章」連結(週末章連到下一週第一章);Exam-ready 每行英文下加「中文:」解釋、Self-check 題目與答案加中文;**概念優先**(第 3.5 節:預設只看白話+比喻+考法,數學與程式收進「進階,可跳過」)。AI W2、W3 已用 `5_patch_cn_nav.js` 補上前三項 | 主理人:章節要一打開就看到、讀完要能直接點下一章、英文看不懂等於沒用、不想補數學與程式 | | v2.4 | 2026-10-01 | **一週多支影片**:`lectures.json` 加 `parts`(第二、三支影片)與 `label`;`segment.json` 每章可帶 `part`,`make_brief.py`/`make_args.py`/`4_lean.js`/`0_shell.js` 自動用該章的影片 ID 與逐字稿;`1_segment.js` 改吃 args(新週次不用改程式);概念寫入改 Sonnet+寫完查回來;去重與驗證只用 view 模式 | NLP W4 有正課+助教 PyTorch 兩支、AI W4 非同步三支舊錄影;Haiku 假裝建了資料庫列;Notion SQL 額度會用完 | | v2.2 | 2026-09-26 | **省額度版**:章節包+一次寫完(Opus)、程式檢查(check_note.py)+一道合併審稿、發佈與資料庫改用 Sonnet/Haiku、漏看檢查只在有舊筆記時做、完成標記讓重跑只補缺的;每週開新對話 | 主理人之後可能降方案;實測寫作花費減半且品質不降(見 7.5 節) | ### 目前進度(2026-10-01) | 課-週 | 狀態 | |---|---| | AI-W1 | 完成(v2.3,2026-09-26 重做) | | AI-W2 | **完成**(v2.1 完整流程:7 章已發佈、78 個新概念) | | AI-W3 | **完成**(v2.2 省額度版:7 章已發佈、58 個新概念)。第 07 章沒投影片,等 Ch12 投影片再核對;前置知識關聯 2026-09-26 週末 run 補好 51 列 | | NLP-W2 | **完成(v2.3)**:8 章舊草稿一道審稿改版(概念優先、加圖、補中文、下一章連結)後發佈,週頁章節置頂、課程頁已連結;漏看補 3 條;75 個新概念入庫、前置知識 41 列 | | NLP-W3 | **完成(v2.3)**:7 章改版後發佈,週頁章節置頂、課程頁已連結;漏看補 5 條;69 個新概念+更新既有 11 列、前置知識 62 列(9 個名稱資料庫裡沒有,例如 word2vec、TF-IDF,沒掛上) | | NLP-W1 | 完成(v2.3,2026-09-26 重做) | | NLP-W4 | **完成(v2.4)**:正課 5 章+助教 PyTorch 4 章(2024 錄影),9 章已發佈、週頁與數學段地圖、課程頁已連結;78+24 個新概念、更新 15 列 | | AI-W4 | **完成(v2.4)**:非同步三支 2021 錄影,7 章已發佈;49 個新概念、更新 4 列、前置知識 46 列。初版沒投影片,同日從課程網站拿到 Ch12、Ch13 後重審重發佈(只有 7 句投影片真的沒有的仍標 my wording) |