戰(zhàn):用AI筆記本搭建課堂編程助手)
你是不是也遇到過(guò)這樣的課堂場(chǎng)景學(xué)生在機(jī)房寫 Python 作業(yè)語(yǔ)法報(bào)錯(cuò)一個(gè)接一個(gè)老師從第一排跑到最后一排同一句“你的括號(hào)少了一半”反復(fù)說(shuō)二十遍。等終于把所有人救完下課鈴也響了。想引入 AI 當(dāng)助教又擔(dān)心學(xué)生拿它直接抄答案還擔(dān)心學(xué)校網(wǎng)絡(luò)連不上云端大模型、賬號(hào)不好管控、代碼傳出去有隱私風(fēng)險(xiǎn)。這篇文章要聊的是用一臺(tái)華碩弘道 AI 筆記本把“課堂編程工作流”真正搭建起來(lái)之后的體驗(yàn)。我的核心判斷很直接AI 進(jìn)課堂的價(jià)值不是讓學(xué)生用 AI 少寫代碼而是把教學(xué)過(guò)程中的反饋鏈路壓縮到秒級(jí)同時(shí)讓教師對(duì) AI 的使用過(guò)程可控、可管、可復(fù)盤。華碩弘道這類 AI 筆記本的意義就在于它把大模型能力變成了教室里的“本地基礎(chǔ)設(shè)施”而不是一個(gè)遙遠(yuǎn)的外部 API。整篇文章會(huì)從課堂編程的真實(shí)痛點(diǎn)切入講清楚什么是 AI 編程工作流再給出完整的本地模型部署、IDE 接入、局域網(wǎng)訪問(wèn)和作業(yè)場(chǎng)景示例。無(wú)論你是高校老師、培訓(xùn)機(jī)構(gòu)講師還是負(fù)責(zé)學(xué)校機(jī)房運(yùn)維的技術(shù)人員都可以照著這篇文章在一臺(tái) AI 筆記本上把流程跑通。1. 課堂編程教學(xué)中的真實(shí)痛點(diǎn)反饋太慢個(gè)性化太難先說(shuō)一個(gè)很多編程老師都深有體會(huì)的現(xiàn)狀。傳統(tǒng)課堂上學(xué)生寫代碼的障礙通常分成兩類一類是語(yǔ)法層面的低級(jí)錯(cuò)誤比如縮進(jìn)錯(cuò)了、引號(hào)沒(méi)閉合、變量名拼錯(cuò)另一類是邏輯層面的理解問(wèn)題比如不知道循環(huán)為什么死循環(huán)了、不知道函數(shù)返回值為什么是 None。兩類問(wèn)題都非常消耗教師精力而且高度重復(fù)。帶來(lái)的結(jié)果是教師大部分時(shí)間不是在“教編程”而是在“做人工編譯器”和“做人肉調(diào)試器”。一個(gè) 40 人的班級(jí)一次上機(jī)課真正能被老師深入指導(dǎo)的學(xué)生往往不超過(guò) 8 到 10 個(gè)人其余人要么卡在第一步要么草草復(fù)制鄰座代碼交差。課堂反饋是嚴(yán)重滯后的。AI 編程工具的出現(xiàn)在很大程度上可以改變這個(gè)局面。代碼解釋、錯(cuò)誤分析、代碼補(bǔ)全、測(cè)試生成這些能力恰好可以把“教師一對(duì)一輔導(dǎo)”的瓶頸給稀釋掉。但這里有一個(gè)容易被忽略的問(wèn)題AI 能力從哪來(lái)如果依賴云端大模型 API課堂場(chǎng)景會(huì)遇到幾個(gè)很現(xiàn)實(shí)的麻煩學(xué)校機(jī)房網(wǎng)絡(luò)不穩(wěn)定高峰期 API 調(diào)用失敗率升高學(xué)生調(diào)用需要統(tǒng)一賬號(hào)密鑰管理麻煩還容易泄露學(xué)生代碼片段會(huì)經(jīng)過(guò)外部接口傳輸存在數(shù)據(jù)合規(guī)風(fēng)險(xiǎn)按 token 計(jì)費(fèi)在長(zhǎng)期、多人、高頻場(chǎng)景下的成本不可控。所以讓 AI 大模型跑在本地用一臺(tái) AI 筆記本作為教室里的模型服務(wù)端是一個(gè)很自然的方案。它把模型能力變成了機(jī)房局域網(wǎng)內(nèi)的“共享資源”老師管得住、學(xué)生用得起、數(shù)據(jù)不出教室。2. 什么是 AI 編程工作流它和傳統(tǒng)課堂的差異在哪“工作流”這個(gè)詞在不同語(yǔ)境下含義差異很大。在編程課堂這個(gè)上下文里我把它定義為一套從需求理解到代碼運(yùn)行再到結(jié)果反饋的標(biāo)準(zhǔn)化鏈路而 AI 嵌入的是鏈路上的多個(gè)環(huán)節(jié)而不是簡(jiǎn)單地在最后給一個(gè)答案。傳統(tǒng)課堂編程工作流大致是教師講解知識(shí)點(diǎn)學(xué)生閱讀示例代碼學(xué)生按照作業(yè)要求寫代碼教師檢查運(yùn)行結(jié)果指出問(wèn)題學(xué)生修改再次提交。這個(gè)流程的問(wèn)題在于第 4 步是串行的。教師只能一個(gè)個(gè)處理學(xué)生請(qǐng)求學(xué)生等待時(shí)間從幾分鐘到一個(gè)小時(shí)不等。引入 AI 之后的課堂編程工作流變成了教師講解知識(shí)點(diǎn)學(xué)生閱讀示例代碼學(xué)生編寫代碼過(guò)程中遇到語(yǔ)法或邏輯問(wèn)題先向本地 AI 請(qǐng)求代碼解釋或錯(cuò)誤分析AI 給出即時(shí)反饋學(xué)生自行修正學(xué)生把最終代碼和 AI 對(duì)話記錄一并提交教師通過(guò)后臺(tái)查看對(duì)話記錄總結(jié)共性問(wèn)題針對(duì)性地講評(píng)。變化的核心在第 3 步和第 4 步反饋從串行的“人肉排隊(duì)”變成了并行的“AI 秒回”。教師的角色也發(fā)生轉(zhuǎn)變從“微觀糾錯(cuò)者”變成“宏觀引導(dǎo)者”。對(duì)于這個(gè)概念需要特別提醒一句AI 編程工作流不等于“用 AI 直接生成作業(yè)代碼”。一個(gè)成熟的工作流應(yīng)該區(qū)分場(chǎng)景。代碼解釋、錯(cuò)誤問(wèn)答、代碼審查這類輔助行為可以全程開(kāi)放而作業(yè)代碼的自動(dòng)生成應(yīng)該受到限制。這也是為什么本地部署更可控——教師可以通過(guò)模型配置、工作區(qū)策略和對(duì)話記錄管理來(lái)約束 AI 的使用邊界而不是放任學(xué)生直接對(duì)接一個(gè)黑盒。3. 華碩弘道 AI 筆記本在課堂場(chǎng)景中的定位本地算力基礎(chǔ)設(shè)施既然要搭課堂編程工作流那第一個(gè)問(wèn)題就是AI 模型跑在哪里很多人的第一反應(yīng)是“服務(wù)器”或者“高配臺(tái)式機(jī)”。但實(shí)際上一臺(tái) AI 筆記本已經(jīng)可以承擔(dān)這個(gè)角色。華碩弘道系列定位是商用 AI PC這類設(shè)備通常具備 CPU、GPU、NPU 三層異構(gòu)算力。對(duì)應(yīng)的分工是CPU 處理通用計(jì)算GPU 承擔(dān)并行計(jì)算NPU 專門加速 AI 推理任務(wù)。在本地跑代碼生成模型時(shí)NPU 和 GPU 可以協(xié)同干活把 CPU 解放出來(lái)。這意味著教師打開(kāi)瀏覽器講 PPT、跑教室管理系統(tǒng)、播放教學(xué)視頻都不會(huì)和 AI 推理?yè)屬Y源。用 AI 筆記本做課堂本地模型服務(wù)器相比傳統(tǒng)機(jī)房方案有三個(gè)非常實(shí)際的優(yōu)勢(shì)。第一是部署門檻低。它本質(zhì)還是一臺(tái) Windows 筆記本不需要專門機(jī)房環(huán)境不需要配置 Linux 服務(wù)器不需要管理員單獨(dú)維護(hù)一臺(tái)機(jī)器。教師自己就能完成安裝。第二是移動(dòng)性。這臺(tái)機(jī)器平時(shí)可以帶著辦公上課時(shí)拿到機(jī)房接上局域網(wǎng)就是一個(gè)模型服務(wù)節(jié)點(diǎn)。不用為 AI 教學(xué)單獨(dú)購(gòu)置一臺(tái)上萬(wàn)元的 GPU 服務(wù)器。第三是功耗和噪音控制得住。商用 AI 筆記本在運(yùn)行中小尺寸模型時(shí)風(fēng)扇策略和功耗優(yōu)化做得比較成熟不會(huì)像臺(tái)式機(jī)高負(fù)載那樣在教室里發(fā)出明顯的噪音。當(dāng)然這里要有邊界意識(shí)。AI 筆記本的算力上限和獨(dú)立 GPU 服務(wù)器不在一個(gè)量級(jí)。它更適合在課堂上跑 3B 到 14B 參數(shù)量的量化模型用于代碼補(bǔ)全、代碼解釋、錯(cuò)誤分析、作業(yè)批改輔助這類任務(wù)。如果要在課堂上做大規(guī)模微調(diào)訓(xùn)練或者跑 70B 以上的大模型那還是應(yīng)該走服務(wù)器集群方案。這不算缺點(diǎn)而是合理的工具選擇問(wèn)題。把一臺(tái)華碩弘道 AI 筆記本放到課堂的服務(wù)器角色本質(zhì)上是在教學(xué)機(jī)房?jī)?nèi)部構(gòu)建了一個(gè)“私有化 AI 服務(wù)節(jié)點(diǎn)”。學(xué)生端不需要接觸任何外部 API也不依賴校園外網(wǎng)只需要通過(guò)瀏覽器或 IDE 插件訪問(wèn)局域網(wǎng)地址。4. 環(huán)境準(zhǔn)備與基礎(chǔ)部署把代碼大模型跑在本機(jī)下面進(jìn)入實(shí)操環(huán)節(jié)。本文所有操作都以 Windows 環(huán)境下的 AI 筆記本為例使用 Ollama 作為模型運(yùn)行時(shí)。Ollama 是目前在本地部署大模型最省事的工具之一自帶模型管理、API 服務(wù)和資源監(jiān)控非常適合課堂教學(xué)場(chǎng)景。4.1 安裝 OllamaOllama 官方提供 Windows 安裝包下載后雙擊安裝即可。安裝完成后打開(kāi) PowerShell 或 CMD執(zhí)行以下命令驗(yàn)證ollama --version如果輸出類似ollama version 0.x.x的提示說(shuō)明安裝成功。注意不同時(shí)期下載的版本號(hào)會(huì)有差異這并不影響后續(xù)操作。4.2 拉取代碼模型課堂教學(xué)場(chǎng)景下推薦優(yōu)先選用參數(shù)量適中、代碼能力較強(qiáng)的開(kāi)源模型。這里以 Qwen2.5-Coder 為例它支持代碼生成、代碼解釋、錯(cuò)誤定位等常見(jiàn)任務(wù)且對(duì)中文提示詞支持友好。在終端執(zhí)行ollama pull qwen2.5-coder:7b如果你的筆記本內(nèi)存是 16GB建議改用 3B 版本推理速度更快ollama pull qwen2.5-coder:3b執(zhí)行后會(huì)顯示下載進(jìn)度。模型體積通常在 2GB 到 6GB 之間具體大小取決于模型版本下載時(shí)間取決于網(wǎng)絡(luò)帶寬。這里提醒老師注意拉取模型的這一步需要外網(wǎng)建議提前在家或辦公室完成避免在課堂上因網(wǎng)絡(luò)問(wèn)題耽誤時(shí)間。4.3 啟動(dòng)模型服務(wù)Ollama 安裝后默認(rèn)會(huì)在后臺(tái)啟動(dòng)一個(gè)本地服務(wù)監(jiān)聽(tīng)11434端口。你可以手動(dòng)確認(rèn)服務(wù)狀態(tài)ollama serve如果顯示服務(wù)已啟動(dòng)就可以在另一個(gè)終端里直接調(diào)用模型了ollama run qwen2.5-coder:3b進(jìn)入交互界面后你可以輸入一個(gè)簡(jiǎn)單問(wèn)題測(cè)試?yán)缯?qǐng)用 Python 寫一個(gè)函數(shù)統(tǒng)計(jì)一個(gè)列表中出現(xiàn)次數(shù)最多的元素。模型會(huì)在幾秒內(nèi)給出代碼。這一步能確認(rèn)模型本身工作正常。4.4 驗(yàn)證本地 API 接口Ollama 的 API 接口是 OpenAI 兼容格式默認(rèn)地址為http://localhost:11434。在瀏覽器中訪問(wèn)http://localhost:11434如果能看到 Ollama 的提示信息說(shuō)明服務(wù)正常。我們還可以用 PowerShell 的curl命令驗(yàn)證模型對(duì)話接口curl http://localhost:11434/api/generate -d {\model\: \qwen2.5-coder:3b\, \prompt\: \用Python打印hello world\, \stream\: false}返回內(nèi)容中會(huì)包含模型生成的文本。如果這一步通過(guò)說(shuō)明本機(jī)模型服務(wù)已經(jīng)是一個(gè)標(biāo)準(zhǔn) API 服務(wù)了。5. 把 AI 接入 IDE讓 VS Code 變成學(xué)生身邊的編程助手模型服務(wù)在本機(jī)跑起來(lái)了但直接讓學(xué)生去終端里敲命令問(wèn)模型明顯不現(xiàn)實(shí)。課堂場(chǎng)景需要的是把模型嵌入到學(xué)生熟悉的開(kāi)發(fā)工具里。這里推薦 VS Code Continue 插件方案開(kāi)源、免費(fèi)、配置直觀學(xué)生接受成本很低。5.1 安裝 Continue 插件在 VS Code 擴(kuò)展市場(chǎng)搜索 Continue點(diǎn)擊安裝。Continue 是一個(gè)開(kāi)源的 AI 編程助手支持對(duì)接本地 Ollama 模型也支持 OpenAI 兼容接口。安裝完成后插件會(huì)在用戶目錄生成一個(gè)配置文件。為了讓 Continue 使用本地 Ollama 模型需要修改配置。5.2 示例配置配置文件路徑通常為C:\Users\用戶名\.continue\config.json寫入以下內(nèi)容{ models: [ { title: Qwen-Coder-Local, provider: ollama, model: qwen2.5-coder:3b, apiBase: http://localhost:11434 } ], embeddingsProvider: { provider: ollama, model: qwen2.5-coder:3b } }這里的關(guān)鍵配置項(xiàng)是provider和apiBase。provider告訴 Continue 我們使用的是本地 Ollama 服務(wù)apiBase指向模型服務(wù)的地址。如果學(xué)生機(jī)需要訪問(wèn)教師機(jī)上的模型把localhost換成教師機(jī)的局域網(wǎng) IP 即可。5.3 學(xué)生機(jī)如何訪問(wèn)教師機(jī)模型在機(jī)房環(huán)境中更常見(jiàn)的架構(gòu)是教師機(jī)運(yùn)行 Ollama學(xué)生機(jī)通過(guò)局域網(wǎng)訪問(wèn)教師機(jī)的 11434 端口。學(xué)生機(jī)的 Continue 配置只需要修改apiBase{ models: [ { title: Teacher-AI, provider: ollama, model: qwen2.5-coder:3b, apiBase: http://192.168.1.100:11434 } ] }注意192.168.1.100需要替換為教師機(jī)的實(shí)際局域網(wǎng) IP。同時(shí)教師機(jī) Windows 防火墻需要放行 11434 端口。否則學(xué)生機(jī)訪問(wèn)不到。5.4 在 IDE 中驗(yàn)證 AI 編程助手配置完成后在 VS Code 里打開(kāi)任意一個(gè) Python 文件輸入一段有明顯錯(cuò)誤的代碼例如def add(a, b) return a b光標(biāo)移動(dòng)到錯(cuò)誤行打開(kāi) Continue 對(duì)話框輸入這段代碼有什么問(wèn)題請(qǐng)指出并修復(fù)。如果配置正確本地模型會(huì)返回類似下面的解釋第 1 行缺少冒號(hào)函數(shù)定義末尾應(yīng)該加上冒號(hào)。正確寫法是 def add(a, b):到這里一個(gè)可用的課堂 AI 編程助手就接入了。學(xué)生寫代碼遇到問(wèn)題時(shí)可以在 IDE 內(nèi)直接獲得解釋而不是干等老師。6. 做一個(gè)課堂示例工作流AI 輔助作業(yè)代碼解釋器IDE 插件解決的是“學(xué)生主動(dòng)求助”的場(chǎng)景。但還有另一個(gè)課堂剛需老師批改作業(yè)時(shí)想知道學(xué)生代碼整體寫得怎么樣或者老師想快速給一份作業(yè)代碼做結(jié)構(gòu)化點(diǎn)評(píng)。這個(gè)場(chǎng)景也可以做成一條自動(dòng)化工作流。下面我用一個(gè) Python 腳本演示讀取學(xué)生提交的代碼文件發(fā)送給本地模型讓模型按“代碼結(jié)構(gòu)、潛在問(wèn)題、優(yōu)化建議”三部分輸出解釋并把結(jié)果寫入 markdown 文件。# 文件路徑classroom_ai_tools/code_explainer.py import requests import sys from pathlib import Path OLLAMA_URL http://localhost:11434/api/generate def read_code(file_path: str) - str: 讀取學(xué)生代碼文件 path Path(file_path) if not path.exists(): print(f錯(cuò)誤文件不存在 {file_path}) sys.exit(1) return path.read_text(encodingutf-8) def explain_code(code: str, model: str qwen2.5-coder:3b) - str: 調(diào)用本地模型對(duì)代碼進(jìn)行結(jié)構(gòu)化解釋 prompt f你是一名編程老師。請(qǐng)對(duì)下面的學(xué)生代碼進(jìn)行分析按三個(gè)部分回答 1. 代碼結(jié)構(gòu) 2. 潛在問(wèn)題 3. 優(yōu)化建議 代碼 {code} payload { model: model, prompt: prompt, stream: False } response requests.post(OLLAMA_URL, jsonpayload, timeout120) response.raise_for_status() return response.json()[response] def save_report(student_name: str, content: str, output_dir: Path): 保存解釋結(jié)果到markdown文件 output_dir.mkdir(parentsTrue, exist_okTrue) output_file output_dir / f{student_name}_report.md output_file.write_text(content, encodingutf-8) return output_file if __name__ __main__: if len(sys.argv) 3: print(用法python code_explainer.py 代碼文件路徑 學(xué)生姓名) sys.exit(1) code_file sys.argv[1] student sys.argv[2] code_text read_code(code_file) report explain_code(code_text) out_path save_report(student, report, Path(./reports)) print(f已生成分析報(bào)告{out_path})這段腳本的核心邏輯是用requests調(diào)用 Ollama 的/api/generate接口把學(xué)生代碼嵌入到一個(gè)固定模板的提示詞里然后要求模型按結(jié)構(gòu)輸出。API 返回的response字段就是模型生成的解釋內(nèi)容。最終結(jié)果寫入reports目錄下的 markdown 文件。運(yùn)行方式python code_explainer.py student1_homework.py 張三預(yù)期結(jié)果是在當(dāng)前目錄下生成reports/張三_report.md里面包含模型對(duì)學(xué)生代碼的結(jié)構(gòu)化分析。這個(gè)腳本更進(jìn)一步的用法是在機(jī)房的一臺(tái)教師機(jī)上跑一個(gè)批量處理腳本遍歷整個(gè)班級(jí)的作業(yè)目錄自動(dòng)為每份代碼生成一份分析報(bào)告。這樣教師只需要在課前把收上來(lái)的代碼放好運(yùn)行一次腳本就能快速了解全班代碼的共性問(wèn)題然后針對(duì)性地調(diào)整上課內(nèi)容。這才是“AI 工作流”在課堂場(chǎng)景里真正提升效率的地方——它把原來(lái)要花兩三個(gè)小時(shí)的作業(yè)初篩壓縮到了幾分鐘。7. 運(yùn)行效果與性能驗(yàn)證一堂課的實(shí)際資源消耗很多學(xué)校的技術(shù)老師會(huì)在意同樣一個(gè)問(wèn)題一臺(tái)筆記本同時(shí)處理全班幾十個(gè)學(xué)生的 AI 請(qǐng)求會(huì)不會(huì)直接卡死這里需要把邏輯拆開(kāi)講清楚。首先要明確學(xué)生端的請(qǐng)求并非時(shí)刻并發(fā)。一個(gè) 40 人的課堂真正同時(shí)發(fā)起模型調(diào)用的通常只有 3 到 5 個(gè)學(xué)生。即使集中提問(wèn)模型的隊(duì)列機(jī)制也會(huì)自動(dòng)排隊(duì)處理。Ollama 默認(rèn)是單請(qǐng)求串行處理對(duì)資源消耗相對(duì)平穩(wěn)。我建議在實(shí)際開(kāi)課之前做一次簡(jiǎn)單的壓力驗(yàn)證。方法很簡(jiǎn)單讓學(xué)生或同事用五六臺(tái)機(jī)器同時(shí)向http://教師機(jī)IP:11434發(fā)送請(qǐng)求觀察教師機(jī)的 CPU、內(nèi)存占用和響應(yīng)速度。觀察時(shí)重點(diǎn)關(guān)注三個(gè)指標(biāo)首 token 響應(yīng)時(shí)間體驗(yàn)上應(yīng)該小于 3 秒如果明顯更久說(shuō)明模型偏大或資源不足。內(nèi)存占用Ollama 加載 7B 量化模型通常占用 6GB 到 8GB 內(nèi)存3B 模型約 3GB 到 4GB。如果筆記本內(nèi)存是 16GB還有充足的余量給系統(tǒng)和其他軟件。CPU 占用率如果沒(méi)有 GPU 或 NPU 參與加速CPU 占用會(huì)明顯偏高。華碩弘道 AI 筆記本的優(yōu)勢(shì)在這里會(huì)體現(xiàn)出來(lái)NPU 參與推理之后CPU 占用會(huì)明顯下降風(fēng)扇噪音也更小。性能驗(yàn)證的結(jié)果直接決定了你的課堂方案要怎么做。如果筆記本配置一般跑 7B 模型已經(jīng)接近資源上限那就果斷換成 3B 模型。3B 模型在代碼解釋、錯(cuò)誤分析這類短文本任務(wù)上的表現(xiàn)對(duì)教學(xué)場(chǎng)景完全夠用。不要為了追求“模型更大”而犧牲課堂流暢度。相對(duì)小一點(diǎn)的模型換來(lái)的是秒級(jí)響應(yīng)這對(duì)學(xué)生的注意力保持非常重要。8. 常見(jiàn)問(wèn)題與排查思路把整套工作流從零開(kāi)始部署大概率會(huì)遇到一些問(wèn)題。我把課堂環(huán)境中最常見(jiàn)的幾類問(wèn)題整理成表格供一線教師和運(yùn)維人員參考。問(wèn)題現(xiàn)象可能原因排查方式解決方案ollama命令無(wú)法識(shí)別安裝后未重新打開(kāi)終端重新打開(kāi) CMD 或 PowerShell重開(kāi)終端后再試?yán)∧P蜁r(shí)下載失敗網(wǎng)絡(luò)不穩(wěn)定或磁盤空間不足檢查磁盤剩余空間重試命令清理磁盤后重新ollama pull學(xué)生機(jī)訪問(wèn)不了教師機(jī)接口防火墻攔截了 11434 端口在學(xué)生機(jī)執(zhí)行telnet 教師機(jī)IP 11434檢測(cè)端口在教師機(jī)防火墻中放行 11434 端口Continue 插件連不上模型apiBase配置錯(cuò)誤檢查配置文件中地址與端口是否可訪問(wèn)將localhost改為正確 IP保存后重啟 VS Code模型響應(yīng)速度很慢模型參數(shù)量過(guò)大或內(nèi)存不足打開(kāi)任務(wù)管理器查看內(nèi)存占用換更小的模型或增加筆記本內(nèi)存學(xué)生請(qǐng)求排隊(duì)太久多人同時(shí)發(fā)起長(zhǎng)文本請(qǐng)求查看 Ollama 日志確認(rèn)是否連續(xù)處理提醒學(xué)生錯(cuò)峰提問(wèn)或改用 3B 模型生成內(nèi)容包含不合適的代碼模型自身能力邊界無(wú)屬于正?,F(xiàn)象老師在課堂強(qiáng)調(diào) AI 結(jié)果需要人工驗(yàn)證不直接照抄在這個(gè)表格里最值得留意的是防火墻問(wèn)題。教室機(jī)房的 Windows 防火墻默認(rèn)情況下會(huì)拒絕來(lái)自局域網(wǎng)其他設(shè)備的訪問(wèn)。即便學(xué)生機(jī)和教師機(jī)在同一個(gè)局域網(wǎng)只要教師機(jī)沒(méi)有放行 11434 端口學(xué)生機(jī)就始終連接不上。這也是最容易踩的坑。另外要提醒一點(diǎn)Ollama 本身沒(méi)有復(fù)雜的用戶認(rèn)證機(jī)制默認(rèn)情況下局域網(wǎng)內(nèi)任何能訪問(wèn)到 11434 端口的人都能調(diào)用模型。如果在校園網(wǎng)環(huán)境中建議通過(guò)防火墻規(guī)則把 11434 端口限制到老師自己 IP 或機(jī)房網(wǎng)段避免其他無(wú)關(guān)設(shè)備發(fā)現(xiàn)這個(gè)端口。9. 最佳實(shí)踐與工程建議把課堂 AI 用好而不是用壞工具鏈搭好之后真正決定課堂效果的其實(shí)是使用策略。這里給出幾條經(jīng)過(guò)驗(yàn)證的工程建議。第一模型選擇要有明確的目的分層。課堂內(nèi)建議準(zhǔn)備兩個(gè)模型一個(gè)較小的 3B 模型用于日常代碼解釋、錯(cuò)誤答疑保證速度如果條件允許再備一個(gè) 7B 模型用于教師備課時(shí)的代碼生成和教學(xué)設(shè)計(jì)。不要用一個(gè)模型解決所有問(wèn)題更不要用最大參數(shù)模型在課堂上硬撐。第二明確 AI 的使用邊界。在布置作業(yè)時(shí)讓學(xué)生把“和 AI 的對(duì)話記錄”作為作業(yè)提交的一部分。這既鍛煉了學(xué)生提問(wèn)的能力也讓教師能看清學(xué)生是如何使用 AI 的。比起單純檢查最終代碼對(duì)話記錄更能體現(xiàn)學(xué)生的思考過(guò)程。如果學(xué)生全程只是在刷“給我完整代碼”老師一眼就能看出來(lái)。第三本地模型生成的內(nèi)容也需要人工校驗(yàn)。即使是 Qwen2.5-Coder 這類相對(duì)優(yōu)秀的代碼模型生成結(jié)果也不是 100% 正確的。教學(xué)中一定要強(qiáng)調(diào)AI 生成代碼必須經(jīng)過(guò)運(yùn)行測(cè)試不能直接當(dāng)作正確答案。教師可以在示例中加入一個(gè)“AI 給出代碼學(xué)生運(yùn)行并指出問(wèn)題”的環(huán)節(jié)反而能加深理解。第四做好教師機(jī)的開(kāi)機(jī)自啟和容錯(cuò)。上課時(shí)間非常寶貴不能每次上課都經(jīng)歷一遍“打開(kāi)終端、啟動(dòng) Ollama、確認(rèn)端口、檢查學(xué)生機(jī)連接”的流程。建議寫一個(gè)簡(jiǎn)單的啟動(dòng)腳本雙擊即可完成服務(wù)檢查和模型加載。echo off :: 文件路徑start_ai_service.bat echo 檢查 Ollama 服務(wù)狀態(tài)... tasklist | findstr /i ollama nul if %errorlevel% neq 0 ( echo Ollama 未運(yùn)行正在啟動(dòng)... start /b ollama serve timeout /t 5 /nobreak nul ) else ( echo Ollama 已在運(yùn)行 ) echo 拉取并預(yù)熱模型... ollama run qwen2.5-coder:3b 請(qǐng)回復(fù)服務(wù)已就緒 echo 本機(jī) IP 地址信息 ipconfig | findstr IPv4 pause第五日志與復(fù)盤是 AI 進(jìn)課堂的隱藏價(jià)值。盡量把學(xué)生的提問(wèn)記錄保存下來(lái)。通過(guò)分析學(xué)生問(wèn)題集中出現(xiàn)在哪些知識(shí)點(diǎn)教師可以調(diào)整教學(xué)重點(diǎn)。這個(gè)價(jià)值往往被忽視但它比“AI 能不能寫代碼”重要得多。10. 總結(jié)與后續(xù)學(xué)習(xí)方向用華碩弘道 AI 筆記本搭建課堂編程工作流體驗(yàn)到底如何我的回答是它沒(méi)有讓課堂變得“全自動(dòng)”但確實(shí)讓課堂的反饋效率產(chǎn)生了質(zhì)的變化。學(xué)生代碼遇到問(wèn)題時(shí)不需要排隊(duì)等老師AI 先給出第一輪反饋教師從重復(fù)的低階糾錯(cuò)中解放出來(lái)把時(shí)間花在更值得做的啟發(fā)式教學(xué)上。而本地化部署帶來(lái)的隱私安全、成本可控、離線可用在校園環(huán)境中是云端 API 很難替代的。如果你準(zhǔn)備在自己的課堂上嘗試建議按下面的路徑推進(jìn)第一步在一臺(tái) AI 筆記本上完成 Ollama 部署和模型拉取第二步在自己日常使用的 VS Code 里接入 Continue熟悉它對(duì)學(xué)生問(wèn)題的回答風(fēng)格第三步挑一個(gè)班級(jí)做試點(diǎn)只開(kāi)放代碼解釋和錯(cuò)誤分析功能觀察學(xué)生使用情況收集反饋第四步根據(jù)反饋優(yōu)化模型、提示詞和使用邊界再逐步擴(kuò)大范圍。后續(xù)值得深入的方向包括用 Python 腳本批量處理學(xué)生作業(yè)、把答疑機(jī)器人接入課堂即時(shí)通訊群、結(jié)合向量數(shù)據(jù)庫(kù)建立課程知識(shí)庫(kù)甚至嘗試把本地代碼模型接入你的作業(yè)管理系統(tǒng)實(shí)現(xiàn)自動(dòng)化的代碼風(fēng)格檢查和測(cè)試生成。這些小而實(shí)的改進(jìn)會(huì)讓“AI 編程工作流”從一個(gè)時(shí)髦概念變成真正穩(wěn)定的教學(xué)基礎(chǔ)設(shè)施。這篇文章更多是拋磚引玉核心是幫你避開(kāi)我踩過(guò)的部署坑建立一套可以直接落地的本地 AI 編程教學(xué)環(huán)境。建議收藏備用等到學(xué)校配發(fā) AI 筆記本之后直接照著做就行。