AI 輔助的本地小說創作工具,整合 Ollama 語言模型提供繁體中文寫作建議。
| 層級 | 技術 |
|---|---|
| Frontend | React 18 + TypeScript + Vite + Tailwind CSS + Bootstrap 5 |
| Backend | Go 1.21 + Gorilla Mux |
| Database | MySQL 5.7(Docker) |
| AI | Ollama(llama3 / 自訂 gwriter 模型) |
# 1. 設定執行政策(只需一次)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# 2. 啟動所有服務(MySQL + Backend + Frontend)
./dev.ps1服務啟動後:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8080
- Database: localhost:3307
ollama pull llama3ollama create gwriter -f gwriter.modelfiledocker-compose up -d dbcd backend
$env:DATABASE_URL = "root:password@tcp(localhost:3307)/mydatabase"
go run .cd frontend
npm install --legacy-peer-deps
npm run dev# 啟動全部容器
docker-compose up --detach --build
# 停止(保留資料)
docker-compose down
# 停止並刪除資料(⚠️ 不可逆)
docker-compose down -v# 進入 MySQL(需安裝 MySQL client)
mysql -h localhost -P 3307 -u root -ppassword mydatabase
# 進入 MySQL(透過 Docker)
docker exec -it gwriter-db-1 mysql -u root -ppassword mydatabaseGWriter/
├── backend/ # Go API server
│ ├── main.go # 路由設定
│ ├── db.go # 資料庫連線 + migration
│ ├── models.go # 資料結構
│ ├── *_handlers.go # 各模組 CRUD handler
│ └── ai_handler.go # Ollama AI proxy
├── frontend/ # React + Vite
│ └── src/
│ ├── api/ # API client
│ └── components/
│ └── NovelEditor/ # 編輯器主體
├── db/
│ └── schema.sql # 資料庫 schema
├── gwriter.modelfile # 自訂 Ollama 模型設定
└── dev.ps1 # 開發環境啟動腳本
# Frontend
npm run lint
npm run format
# Backend
gofmt -w .