Shimmy Logo

什么是 Shimmy?

Shimmy 是一个仅有 5.1MB 的超轻量级工具,它能够在本地计算机上提供完全兼容 OpenAI 接口的 AI 模型服务。这意味着你可以使用现有的 AI 工具和应用程序,只需将它们的 API 端点指向 Shimmy,就能在本地私密地运行大型语言模型,无需任何代码更改。

与其它需要大量资源和复杂配置的解决方案不同,Shimmy 设计极简,启动时间不到 100 毫秒,内存占用仅约 50MB。它自动发现系统中的 GGUF 模型文件,并提供完整的 OpenAI 兼容端点,使各种 AI 工具能够无缝工作。

为什么需要 Shimmy?

在人工智能应用日益普及的今天,许多开发者和企业希望能够在本地运行模型,而不是依赖云端 API 服务。这样做有多重好处:

  • 数据隐私:你的代码和数据永远不会离开本地机器
  • 成本控制:无需支付按 token 计费的 API 费用
  • 响应速度:本地推理提供亚秒级响应时间
  • 可靠性:没有速率限制,没有服务宕机

然而,传统的本地模型部署方案往往需要庞大的软件包(如 Ollama 的 680MB 二进制文件)和复杂的配置过程。Shimmy 解决了这些问题,提供了一个极致轻量、零配置的解决方案。

主要特性

完全兼容 OpenAI API

Shimmy 提供了 100% 兼容 OpenAI 的接口,包括:

  • GET /v1/models – 列出可用模型
  • POST /v1/chat/completions – 聊天补全功能
  • POST /v1/completions – 文本补全功能
  • GET /health – 健康检查端点

这意味着任何支持 OpenAI API 的工具都可以直接与 Shimmy 配合使用,无需任何修改。

自动模型发现

Shimmy 会自动从多个位置发现模型文件:

  • Hugging Face 缓存目录:~/.cache/huggingface/hub/
  • Ollama 模型目录:~/.ollama/models/
  • 本地目录:./models/
  • 环境变量指定路径:SHIMMY_BASE_GGUF=path/to/model.gguf

零配置设计

  • 自动分配端口以避免冲突
  • 自动检测 LoRA 适配器以支持专用模型
  • 无需配置文件或设置向导

跨平台支持

Shimmy 支持 Windows、macOS 和 Linux 系统。在 macOS 上,它还支持 Metal GPU 加速,包括 Intel 和 Apple Silicon 芯片。

安装与使用

快速安装

Windows 系统

推荐使用预编译的二进制文件,避免构建依赖问题:

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

或者从源码安装(需要先安装 LLVM/Clang):

winget install LLVM.LLVM
cargo install shimmy --features huggingface

macOS 和 Linux 系统

cargo install shimmy --features huggingface

获取模型

Shimmy 使用 GGUF 格式的模型文件。你可以使用 huggingface-cli 下载模型:

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/

启动服务

启动 Shimmy 服务器非常简单:

# 自动分配端口
shimmy serve

# 或手动指定端口
shimmy serve --bind 127.0.0.1:11435

启动后,只需将你的 AI 工具指向显示的端口,就可以开始使用了。

Docker 部署

对于喜欢使用容器的用户,Shimmy 也提供了 Docker 支持。

快速开始

  1. 创建模型目录:
mkdir models
  1. 下载模型文件:
curl -L "https://huggingface.co/microsoft/Phi-3-mini-4k-instruct-gguf/resolve/main/Phi-3-mini-4k-instruct-q4.gguf" -o models/phi-3-mini.gguf
  1. 启动 Shimmy:
docker-compose up -d
  1. 测试 API:
curl http://localhost:11434/v1/models

环境配置

Docker 部署支持以下环境变量:

变量名 默认值 描述
SHIMMY_PORT 11434 服务器端口
SHIMMY_HOST 0.0.0.0 监听地址
SHIMMY_BASE_GGUF /app/models 模型目录

GPU 支持

对于 NVIDIA GPU 用户,Docker 部署支持自动 GPU 配置。需要确保:

集成示例

VSCode Copilot

在 VSCode 设置中添加:

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

Continue.dev

在 Continue.dev 配置中添加:

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

Cursor IDE

Cursor IDE 开箱即用,只需指向 http://localhost:11435/v1

性能对比

以下是 Shimmy 与其他流行工具的对比:

工具 二进制大小 启动时间 内存占用 OpenAI API 兼容性
Shimmy 5.1MB <100ms 50MB 100%
Ollama 680MB 5-10秒 200MB+ 部分
llama.cpp 89MB 1-2秒 100MB

技术架构

Shimmy 基于以下技术构建:

  • Rust + Tokio:提供内存安全和异步高性能
  • llama.cpp 后端:行业标准的 GGUF 推理引擎
  • OpenAI API 兼容:完全替代方案
  • 动态端口管理:零冲突,自动分配
  • 零配置自动发现:开箱即用

开发者证书(DCO)

Shimmy 使用开发者证书(DCO)来确保所有贡献都经过适当许可,并且贡献者有权提交其代码。

什么是 DCO?

DCO 是一种轻量级方式,让贡献者证明他们编写或有权利提交其贡献。它是贡献者许可协议(CLA)的行业标准替代方案,被 Linux 内核、Docker 和 GitLab 等项目使用。

如何签署提交

选项1:自动签署(推荐)

配置 git 自动签署提交:

git config user.name "Your Name"
git config user.email "your.email@example.com"
git config format.signoff true

然后正常提交:

git commit -m "Add new feature"

选项2:手动签署

使用 -s 标志进行 git 提交:

git commit -s -m "Add new feature"

这会在提交消息中添加签署行:

Add new feature

Signed-off-by: Your Name <your.email@example.com>

选项3:修改现有提交

如果忘记签署提交:

# 修改最后一次提交
git commit --amend --signoff

# 修改多个提交
git rebase --signoff HEAD~3  # 最后3次提交

常见问题解答

Shimmy 是否免费?

是的,Shimmy 将永远免费。它采用 MIT 许可证,承诺永远不会成为付费产品。

如果我为公司工作,可以使用吗?

可以。使用你的工作邮箱,并确保你的雇主允许你为开源项目做贡献。

如果我已经贡献了代码但没有签署,怎么办?

没问题!只需修改你的提交以添加签署,然后强制推送分支。

这是具有法律约束力的吗?

是的,DCO 是一个法律认证,证明你有权贡献你的代码。

关于我从其他地方复制的代码怎么办?

只贡献你编写或拥有适当许可权利的代码。如有疑问,请询问维护者。

我可以签署别人的提交吗?

不行,每个贡献者必须使用自己的身份签署自己的提交。

支持哪些模型格式?

Shimmy 支持 GGUF 格式的模型文件,这是目前最流行的量化模型格式之一。

是否支持 GPU 加速?

是的,Shimmy 支持 GPU 加速。在 macOS 上支持 Metal GPU 加速,在 Linux 和 Windows 上支持 CUDA。

如何更新 Shimmy?

如果你通过 cargo 安装,可以使用 cargo install shimmy --features huggingface --force 进行更新。如果使用预编译二进制文件,只需下载最新版本替换即可。

技术支持与社区

  • 问题报告:通过 GitHub Issues 提交
  • 讨论:参与 GitHub Discussions
  • 文档:查看 docs/ 目录获取详细文档
  • 赞助:通过 GitHub Sponsors 支持项目发展

质量与可靠性

Shimmy 通过全面测试保持高代码质量:

  • 具有基于属性测试的全面测试套件
  • 带有质量门的自动化 CI/CD 流水线
  • 关键操作的运行时不变性检查
  • 跨平台兼容性测试

结语

Shimmy 是一个革命性的轻量级工具,它使本地 AI 模型部署变得简单而高效。无论是开发者、研究人员还是企业用户,都可以从它的简洁设计、强大功能和零配置体验中受益。

由于其极小的资源占用和完全兼容的 API 设计,Shimmy 是替代庞大而复杂的模型服务方案的理想选择。最重要的是,它承诺永远免费和开源,这为广泛采用提供了坚实基础。

如果你正在寻找一个简单、高效、可靠的本地 AI 模型服务解决方案,Shimmy 值得你的尝试。