輕量級本地AI推論伺服器,僅5MB單一二進制檔案,提供OpenAI API相容介面,支援GGUF模型和LoRA適配器

MITRustshimmyMichael-A-Kuykendall 2.8k Last Updated: October 04, 2025

Shimmy - 輕量級本地AI推論伺服器

專案概述

Shimmy是一個5.1MB的單一二進位檔本地推論伺服器,為GGUF模型提供OpenAI API相容的端點。它被設計為「隱形基礎設施」,讓本地AI開發變得順暢無阻。

核心特色

🚀 極致輕量

  • 二進位檔大小: 僅5.1MB(相較於Ollama的680MB)
  • 啟動時間: <100ms(相較於Ollama的5-10秒)
  • 記憶體開銷: <50MB(相較於Ollama的200MB+)

🔧 零配置運行

  • 自動連接埠分配: 避免連接埠衝突
  • 模型自動探索: 支援多種模型來源
    • Hugging Face快取: ~/.cache/huggingface/hub/
    • Ollama模型: ~/.ollama/models/
    • 本地目錄: ./models/
    • 環境變數: SHIMMY_BASE_GGUF=path/to/model.gguf

🎯 完美相容性

  • 100% OpenAI API相容: 直接取代現有工具
  • 開箱即用: VSCode、Cursor、Continue.dev等工具無需修改
  • 跨平台支援: Linux、macOS、Windows

技術架構

核心技術堆疊

  • 語言: Rust + Tokio(記憶體安全、非同步效能)
  • 推論引擎: llama.cpp後端(業界標準GGUF推論)
  • API設計: OpenAI相容(即插即用取代)

支援的模型格式

  • GGUF模型: 主要支援格式
  • SafeTensors: 原生支援,載入速度提升2倍
  • LoRA轉接器: 一流支援,從訓練到生產API僅需30秒

安裝與使用

快速安裝

方式1: 透過Cargo安裝

cargo install shimmy

方式2: 下載預建置二進位檔(Windows)

curl -L https://github.com/Michael-A-Kuykendall/shimmy/releases/latest/download/shimmy.exe

方式3: macOS安裝

# 安裝依賴項
brew install cmake rust
# 安裝shimmy
cargo install shimmy

基本使用

1. 下載模型

# 下載相容模型
huggingface-cli download microsoft/Phi-3-mini-4k-instruct-gguf --local-dir ./models/
huggingface-cli download bartowski/Llama-3.2-1B-Instruct-GGUF --local-dir ./models/

2. 啟動伺服器

# 自動分配連接埠
shimmy serve

# 手動指定連接埠
shimmy serve --bind 127.0.0.1:11435

3. 配置AI工具

VSCode配置:

{
  "github.copilot.advanced": {
    "serverUrl": "http://localhost:11435"
  }
}

Continue.dev配置:

{
  "models": [{
    "title": "Local Shimmy",
    "provider": "openai", 
    "model": "your-model-name",
    "apiBase": "http://localhost:11435/v1"
  }]
}

命令列工具

基本指令

shimmy serve                        # 啟動伺服器(自動連接埠分配)
shimmy serve --bind 127.0.0.1:8080 # 手動連接埠綁定
shimmy list                         # 顯示可用模型
shimmy discover                     # 重新整理模型探索
shimmy generate --name X --prompt "Hi" # 測試生成
shimmy probe model-name             # 驗證模型載入

API端點

核心端點

  • GET /health - 健康檢查
  • POST /v1/chat/completions - OpenAI相容聊天
  • GET /v1/models - 列出可用模型
  • POST /api/generate - Shimmy原生API
  • GET /ws/generate - WebSocket串流傳輸

使用範例

# 測試API
curl -X POST http://localhost:11435/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "your-model",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

效能比較

指標 Shimmy Ollama llama.cpp
二進位檔大小 5.1MB 🏆 680MB 89MB
啟動時間 <100ms 🏆 5-10s 1-2s
記憶體使用 50MB 🏆 200MB+ 100MB
OpenAI API 100% 🏆 部分支援

優勢特點

🔒 隱私優先

  • 程式碼保留在本地機器
  • 無資料外洩風險
  • 完全離線運行

💰 成本效益

  • 無按Token計費
  • 無限查詢次數
  • 一次安裝,永久使用

⚡ 效能優異

  • 本地推論,亞秒級回應
  • 低記憶體佔用
  • 快速啟動

🔄 彈性部署

  • 單一二進位檔
  • 無外部依賴
  • 跨平台相容

擴展功能

LoRA轉接器支援

Shimmy提供一流的LoRA轉接器支援,可以快速從訓練模型部署到生產API:

# 載入LoRA轉接器
shimmy serve --lora-adapter path/to/adapter

熱模型切換

支援在執行時動態切換模型,無需重新啟動伺服器。

GPU加速

  • macOS: 自動Metal GPU加速
  • 跨平台: 支援各種GPU後端

社群與支援

社群資源

總結

Shimmy是一個革命性的本地AI推論解決方案,它證明了有時候「少即是多」。透過極致輕量化設計和零配置理念,Shimmy為開發者提供了一個真正「即開即用」的本地AI基礎設施,同時保持了企業級的效能與相容性。無論你是AI應用開發者、研究人員還是隱私意識強的使用者,Shimmy都是一個值得考慮的優秀選擇。

Star History Chart