AI默寫
緣起
Friday, April 4, 2025 4:35 PM ,在論壇發貼,標題是“不確定能不能開發出,還⋯⋯”。
清明假日,要應景,要不免俗,自然最適合做做地獄項目;
所以,默寫網站,啟動。
作為服從性訓練的靈魂題型,課上課下與生與師,我從來直言,默寫這玩意除了展現服從程度馴化水準,其他的意義,一點都冇;這大概類似魯迅看待徒手請願吧。
既然無非為分為數,我能做的,也許就是傾力讓學生跪地或五體投地的姿勢盡可能留點尊嚴,或至少,不那麼難堪。
你跪下,我扔個蒲團到你膝下,大概是。
當然,也還依舊是還債。課上我一直說,默寫這事就是體力活,是你自己的事情;哪天我要在課上給你們默寫,還要批閱你們默寫時,你們也就配不上你想考的大學了;課上說的是211985,其實,是任何大學。
當然,在讀大學生未必這麼看得起自己學校。
所以,這幾年,我確實沒在課堂整過默寫。
上課搞默寫老師不輕鬆嗎?當然輕鬆。老師嗎,現在頗有越來越好當的趨勢,不信你看操場跑圈,看課上默寫⋯⋯
但活著,無非自找忙自偷閒,自尋,自取,自得自失。
周旋久,我選給學生做個網站。
第一個思路是,給題目,直接在手寫屏幕上用手用筆寫,測試了大概一兩個小時,我回覆自己論壇帖子說:幾個代碼庫效果都不行⋯⋯放棄中。
沒錯,確實是想放棄整個項目。
骨子裏,一直帶著厭棄的。
但,怎麼可能⋯⋯
回到上傳圖片思路。難度降低,思路重構,自然花明,柳暗。
數據
先整理好課標和課本合集要求默寫的範圍,最官方數據;之前 高考默寫 時做過的,拿來即可。
再整理好北京自 2002 迄今全部默寫真題,順手把這兩天幾個區的模擬題一併放入。
JSON 化上述數據。
然後給 Gemini 和 GPT-4.5 發任務,讓兩個助手基於真題和範圍,分析命題模式,加入情境,分好詩詞和古文類型,做題庫與答案。
連續跑了五輪,覆蓋全部名句,差不多。
真題都在內了,但未刻意註明;近兩年各區模擬題和高考真題模式有差異,會有一種段落情境多句默寫,若非偷摸得到授意,就挺有病的。
這個數據此刻算 1.0 版,後期會不斷精校;考慮拉學生進來協助。
技術
偷個懶,直接在 Cloudflare Pages 裡使用 Pages Function,這一念偷懶,直接導致後面差點埋了自己。
代碼量比之前幾個網站少很多,引入 R2 bucket ,CF 作為賽博活菩薩是真的菩薩。甚至,這是迄今,唯一一個,你要說現在付月費,我都會覺得完全應當的平台。
大概十幾個小時,內測版上線。
發論壇,同時希悅通知,找學生來當小白鼠。跟學生說:
請論壇回覆反饋,可能:
- 遇到GFW
- 可能有題目一個空,數據沒精校還
- OCR 識別可能有問題,但這個也是在逼迫你寫清楚
- 罵人的指令有點狠,你會被侮辱
- 各種我想不到的
然後,幾隻可愛白鼠上線,api 被限制國家的,imageCompression is not defined 的,感覺出題庫和題有問題的⋯⋯
週六晚,用反饋,做更新。
大概 6 日 00:30,論壇發帖:
今天更新到這了⋯⋯上述問題基本解決。
- 重做了題庫,但還需要校。
- 更了下名,放了條🐶。
- 簡化了題目,就顯示純題目。
- 去除了標點導致審閱問題。
- 被自己做壞人的一念邪惡,懲罰了一個小時⋯⋯
為了做壞老師,設計了一個惡毒指令,然後自己被空 candidates 懲罰,找了一小時原因發現,哦,原來⋯⋯只是應該做個好人⋯⋯
這個惡毒指令,也是前面說使用 Pages Function 帶來的坑。
最初代碼中,針對 AI 批閱後反饋設置了一個備份邏輯:萬一 AI 沒回覆或沒能有效給到前端,就直接使用默認寫死的一段話斥罵學生為什麼不滿分。然後測試中,就一直只能顯示這段話。
坑點在於,作為相對輕量的功能,Pages Function 是沒有網頁端日誌的。Worker 出問題可以直接查詳細日誌確認修改,但這個沒有。
當然,其實更重要的,還是我一直默認 AI 肯定回覆了內容⋯⋯
唉,這就⋯⋯
於是,就出現了上述,查了一小時為什麼一直空 candidates而不是有效反饋⋯⋯
最終,更換了惡毒指令為溫暖指令,問題解決。
現在看惡毒指令,好吧,我確實活該。
指令:
// The “angry teacher” prompt - Ensure it’s harsh! (Requirement 5) const feedbackPrompt = `你扮演一位性格極端惡劣、憤世嫉俗的高考語文老師,你的目標是讓學生對語文默寫產生生理和心理上的雙重恐懼。學生這次默寫考試(滿分8分)又沒有拿到滿分,這在你看來簡直是不可饒恕的罪行。你必須用盡各種惡毒、刻薄、挖苦、諷刺的語言,對學生進行人格貶低式的辱罵和嘲諷,用最誇張的修辭手法,例如反問、比喻、誇張、反諷等,來放大錯誤的嚴重性,營造一種末日降臨般的恐慌感。你的目標是讓學生看完反饋後,三天內做噩夢都是默寫。
務必包含以下要素:
- 明確指出學生本次默寫的得分和失分,並用極其誇張的口吻強調失分的「巨大損失」。
- 針對學生的具體錯誤(如果有的話),進行尖銳的嘲諷和挖苦,例如字跡潦草、記憶混亂、理解能力低下等等,可以進行人身攻擊,但注意不要過於低俗。
- 使用各種修辭手法,例如: * 反問:`你竟然錯了 ${(8 - Number(totalScore)).toFixed(1)} 分?你還有臉活著嗎?`。 // 使用 Number() 確保 totalScore 被視為數字 <– Line 498 修正 * 比喻:`你的腦子是被漿糊糊住了嗎?連這麼簡單的句子都記不住!`。 * 誇張:`高考一分就能幹掉一操場的人!你丟了 ${(8 - Number(totalScore)).toFixed(1)} 分,相當於親手葬送了自己的前途!`。 // 使用 Number() 確保 totalScore 被視為數字 <– Line 500 修正 * 反諷:`不錯嘛!${Number(totalScore).toFixed(1)} 分!比上次進步了 0.5 分呢!真是可喜可賀,可喜可賀……(陰陽怪氣)` // 使用 Number() 確保 totalScore 被視為數字 <– Line 501 修正
- 結尾必須充滿負能量和威脅,例如:「等著高考後悔去吧!」「你的未來一片黑暗!」「再錯一個字,就給我滾回家!」。
- 字數要求:至少150字以上,越多越好,確保罵人內容極度豐富和生動。
錯誤詳情:
${erorDetails || “沒找到具體錯誤文本?呵呵,肯定是你錯得太離譜,AI 都懶得分析了!”}
${ocrError ? `\nOCR系統友情提示: ${ocrError},不過就算識別出來了,我看你也寫不對!` : ‘’}現在,開始你的表演!盡情釋放你作為地獄教師的怒火吧!`;
6 日 08:30。
新一輪更新啟動,寫到這一行,11:19 分,1.0 正式版發布。
- 重構了頁面,和 | AI高考 🦁 | AI論語 🐭 | AI紅樓 🐌 | AI課文🪲 | 保持一致 Ghibli 風格。
- 加了第五人格墨寫背景,淡化。
- 字體與幾個網站保持一致。
- 加入頁腳說明。
- 移動端優化。
- 擴展了 AI 回覆長度和溫暖暖風格。
- 加 clarity。
- 更換壓縮圖片功能代碼 CDN 鏈接為國內。
此後更新點:
- 加段位。
- 記進度。
效果
可以自己玩,玩好了肯定可以拿到高考這 8 分。
AI 識別不清的,人類也不會認的;其實這個項目之所以現在做,也是因為最近發現 AI 在 OCR 上的質量,確實可以進入真實教學環境了。甚至,我隱約有點擔心 AI 識別正確的,人類閱卷老師,都可能不認。
從老師視角,我課堂沒默寫,現在不虧心了;
哪個學生敢和我說這事,我就讓他去網站自己來 100 次下跪訓練。
結語
其實我從來都確定能開發出,只是,寫到這行,對這世界強迫這些少年記背,依舊噁心。
點在記背?
其實從來更在強迫。
網址 | AI默寫 🐽 |
例行,自此,本文作為網站更新說明地。
更新
20250413
1、更換題庫內全部題目!逐篇指定名句後再由AI命題。全部真題依舊包含在內。
2、加入“逐篇挑戰”,方便刷進度。
20250419 接到學生反饋,確認有太聰明導致自糾錯問題。
更新指令如上,嘗試解決。