🦙 Gemma Chatbot 是一套以 Google Gemma QAT 模型 為核心的本地聊天系統,C++ 與 Python 核心開發,透過 Gradio 架設 UI 介面,結合多語言支援、推理參數控制、模式切換與對話記錄等功能,為開發者與研究者提供一個輕量且可擴充的 LLM 操作平台。
gradio_llama_chat.py:Gradio 主 UI 與互動邏輯llama-server.log:伺服器端 log 檔案chat_config.json:推理參數儲存檔lang_config.json:介面語言設定儲存chat_logs_*.jsonl:對話紀錄- LLM 推理 API 預設連接至
http://localhost:8080/completion
✅ 請確保
llama-server事先啟動,並監聽於 8080 port
- 模型架構:Gemma-3B / 7B(推薦使用 QAT 模型)
- 量化訓練:使用 QAT (Quantization-Aware Training) 模型版本以減少推理延遲
- 部署平台:支援 [gguf 格式模型] 搭配
llama.cpp本地推理
| 功能 | 說明 |
|---|---|
| ✅ 多語言介面 | English / 中文 / 日本語 / 한국어 |
| ✅ 聊天框與訊息歷史顯示 | 類似 ChatGPT 對話流程 |
| ✅ 參數即時調整 | 包含 temperature、top-p、mirostat 等 |
| ✅ 預設模式切換 | 提供三種建議推理參數配置 |
| ✅ 設定儲存與載入 | 可儲存常用參數組合 |
| ✅ LLM 伺服器日誌顯示 | 顯示最後 20 行 log 便於除錯 |
| ✅ 每回對話記錄保存 | 根據語言自動分檔記錄 |
| 參數名稱 | 範圍 / 預設 | 說明 |
|---|---|---|
| Temperature | 0.1 ~ 1.5 | 控制生成的隨機性 |
| Top-p | 0.1 ~ 1.0 | 累積機率截斷 (nucleus sampling) |
| Top-k | 0 ~ 100 | 從 k 個最可能中挑選 |
| Max New Tokens | 16 ~ 2048 | 控制生成 token 長度 |
| Repetition Penalty | 0.8 ~ 2.0 | 懲罰重複片段 |
| Stop Tokens | 預設:"User: | Assistant:" |
| Mirostat | 0 / 1 / 2 | 動態調整 entropy(生成品質) |
| Mirostat Tau | 5.0 | 熵目標值 |
| Mirostat Eta | 0.1 | 調整學習率參數 |
| 模式名稱 | Temperature | RP | Max Tok | Top-p | Top-k |
|---|---|---|---|---|---|
| 💬 聊天模式 | 0.7 | 1.1 | 256 | 0.9 | 40 |
| 🎨 創作模式 | 1.3 | 1.0 | 512 | 0.95 | 50 |
| 💻 程式模式 | 0.3 | 1.2 | 512 | 0.85 | 20 |
- 點選「💾 儲存參數組合」後,會將當前推理設定寫入
chat_config.json - 點選「📂 載入參數」後會重新套用該設定
{
"temperature": 0.7,
"repetition_penalty": 1.1,
"max_tokens": 256,
"top_p": 0.9,
"top_k": 40,
"stop": "User:|Assistant:",
"repeat_last_n": 64,
"seed": 42,
"mirostat": 0,
"mirostat_tau": 5.0,
"mirostat_eta": 0.1
}| 語言 | System Prompt 範例 |
|---|---|
| 中文 | 你是一位聰明且謙虛的語言模型助理,請用繁體中文作答。 |
| 日本語 | あなたは賢くて謙虚な言語モデルのアシスタントです。日本語で回答してください。 |
| 한국어 | 당신은 똑똑하고 겸손한 언어 모델 어시스턴트입니다. 한국어로 대답하십시오. |
| English | You are a helpful and humble language model assistant. Please respond in English. |
對話紀錄以 .jsonl 格式按語言保存,例如:chat_logs_zh.jsonl
{"timestamp": 1719152657.824, "history": [{"role": "user", "content": "你好"}, {"role": "assistant", "content": "您好,有什麼我可以幫忙的?"}]}$ python gradio_llama_chat.py建議搭配
llama.cpp或其他本地後端提供/completionAPI 服務。
- 本介面為開發測試用途,請勿公開部署於未授權環境
- 請搭配具有 MLP 精度穩定性的 Q4_K_M / Q6_K 模型進行推理
本項目採用 CC-BY-SA授權.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
- 聯結 RAG 系統外部知識回應
- 加入用戶身份登入與對話快照切換
- 整合 OpenAI / Gemini 多模態選項
