Michael-A-Kuykendall/shimmyView GitHub Homepage for Latest Official Releases
轻量级本地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
- Hugging Face缓存:
🎯 完美兼容性
- 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原生APIGET /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后端
社区和支持
社区资源
- Bug报告: GitHub Issues
- 讨论: GitHub Discussions
- 文档: docs/
- 赞助: GitHub Sponsors
总结
Shimmy是一个革命性的本地AI推理解决方案,它证明了有时候"少即是多"。通过极致的轻量化设计和零配置理念,Shimmy为开发者提供了一个真正"即开即用"的本地AI基础设施,同时保持了企业级的性能和兼容性。无论你是AI应用开发者、研究人员还是隐私意识强的用户,Shimmy都是一个值得考虑的优秀选择。