TinyNotebook 是一個使用 C# / .NET 10 開發的本機 LLM 對話專案,提供兩種介面:
- Web 版:
ASP.NET Core + Razor Pages + Minimal API - Console 版:適合在終端機直接對話與切換模型
專案目標是讓你在本機直接使用 llama.cpp + GGUF 模型進行多輪對話、切換模型、管理對話串,並支援長文輸出、程式碼、HTML 等一般文字內容。
目前專案預設模型為:
gemma-4-E2B-it-Q4_K_M.gguf
最近 Gemma 4 風風火火地出現了,手癢一定要來自己試試看。
- 使用
C# / .NET 10開發 - Web 採用
ASP.NET Core + Razor Pages + Minimal API - 以
llama.cpp為本機推論 backend,搭配 GGUF 模型 - 預設示範模型為
gemma-4-E2B-it-Q4_K_M.gguf - 同時提供 Web 與 Console 兩種操作介面
- 支援多對話串管理與模型切換
- 支援串流回應、長文輸入與長文輸出
- 程式碼、HTML、一般長文都能作為普通對話內容處理
- 使用
C# / .NET 10開發 - 本機執行,不依賴雲端 API
- 支援多個 GGUF 模型切換
- Web 版即時串流回應
- 多對話串管理
- Console 版互動式指令
- 支援長文輸入與長文輸出
- 對 HTML 回應提供預覽按鈕
TinyNotebook/Web 專案,包含 Razor Pages UI 與 Minimal API 串流端點TinyNotebook.Core/核心服務、模型管理、prompt 建構、路徑解析、conversation storeTinyNotebook.ConsoleHost/終端機互動版本
TinyNotebook/
├─ models/
│ └─ gguf/
│ └─ <your-model>.gguf
├─ .db/
│ └─ native-backends/
│ └─ llama-b8683-win-cpu-x64/
│ ├─ llama-cli.exe
│ ├─ llama.dll
│ └─ ggml-*.dll
├─ appsettings.json
├─ appsettings.web.json
└─ setup.ps1
- Windows
- .NET 10 SDK
- 一個可用的 GGUF 模型
- 一份可用的
llama.cppWindows native backend
git clone <your-repo-url>
cd TinyNotebookpowershell -ExecutionPolicy Bypass -File .\setup.ps1這個腳本會:
- 建立
models\gguf - 建立
.db\native-backends\llama-b8683-win-cpu-x64 - 若沒有
appsettings.json,就從appsettings.example.json建立一份 - 檢查模型與
llama-cli.exe是否存在
將 GGUF 模型放到:
models\gguf
例如:
models\gguf\gemma-4-E2B-it-Q4_K_M.gguf
models\gguf\Qwen3.5-4B-Q4_K_M.gguf
將 Windows CPU 版 backend 放到:
.db\native-backends\llama-b8683-win-cpu-x64
至少需要:
llama-cli.exellama.dllggml.dll- 對應 CPU backend 的
ggml-*.dll
dotnet run --project .\TinyNotebook.csproj或使用 Visual Studio 開啟 TinyNotebook.sln 後執行 Web 專案。
dotnet run --project .\TinyNotebook.ConsoleHost\TinyNotebook.ConsoleHost.csprojWeb 版主要設定:
Llm:ModelPathLlm:ContextSizeLlm:TemperatureLlm:TopKLlm:TopPLlm:MaxTokensLlm:SystemPrompt
目前預設會呼叫:
"ModelPath": "models\\gguf\\gemma-4-E2B-it-Q4_K_M.gguf"如果要改成其他模型,例如 Qwen3.5-4B-Q4_K_M.gguf,只要修改 ModelPath 即可。
提供給 clone 專案後建立本機設定使用。
目前專案已針對不同模型做基本模板分流:
- Qwen / ChatML 系列
- Gemma 4 系列
README 與範例設定目前預設以 gemma-4-E2B-it-Q4_K_M.gguf 為主要示範模型。
- 對話串列表
- 模型切換
- Session 狀態顯示
- 串流回應
- 生成進度小字狀態
- HTML 預覽按鈕
/help/status/reset/model list/model use <name-or-index>/threads/exit
以下內容預期不進 GitHub:
bin/obj/.db/models/*.gguf- 各種測試輸出與 log
也就是說,clone 專案後仍需自行準備:
- 模型檔
llama.cppnative backend
確認模型存在於:
models\gguf
並且 appsettings.json / appsettings.web.json 的 ModelPath 正確。
確認 backend 存在於:
.db\native-backends\llama-b8683-win-cpu-x64
請檢查:
- 模型是否存在
llama-cli.exe是否存在- 模型是否太大導致 CPU 生成很慢
MaxTokens是否太小導致輸出提早結束
常見原因:
MaxTokens太小- 模型本身先收尾
- 長文 HTML 任務對小模型太重
本專案採用 MIT License。
你可以自由使用、修改、散布與商業使用本專案,但必須保留原始授權聲明。
本軟體依現況("as is")提供,不附任何明示或默示保證,包括但不限於適售性、特定用途適用性、相容性、穩定性與安全性。
因安裝、執行、修改、設定錯誤、模型輸出內容、系統相容性問題、第三方 runtime、模型檔或誤用本專案所造成的任何損害,包括但不限於:
- 電腦故障
- 系統不穩或當機
- 資料遺失或毀損
- 硬體異常
- 商業中斷
- 其他任何直接或間接損失
作者概不負責。若你不同意此條件,請勿使用本專案。
若專案內含第三方前端套件,相關授權可參考 wwwroot/lib/**/LICENSE.txt。

