轻量级本地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