mostlygeek/llama-swap

Reliable model swapping for any local OpenAI/Anthropic compatible server - llama.cpp, vllm, etc

解决的问题

llama-swap 允许用户在单台机器上运行多个生成式 AI 模型,并按需在它们之间切换。它消除了为不同模型手动启动和停止不同推理服务器的需要,为本地 AI 工作流提供统一的 API 接口。

工作原理

它作为反向代理,拦截对 OpenAI 和 Anthropic 兼容端点的请求。当请求指定某个特定模型时,llama-swap 会提取模型 ID 并自动加载对应的服务器配置。如果所需模型的服务器当前未运行,它会将活动服务器切换为正确的服务器。对于基础设置,它一次只处理一个模型;对于高级用户,可通过自定义 DSL「matrix」实现多个模型并发运行。

适用人群

希望无需手动管理进程或端口,即可无缝管理多个本地 LLM、图像生成器和音频模型的开发者和 AI 爱好者。

主要亮点

  • 广泛兼容性:支持 OpenAI 和 Anthropic API 端点,以及 llama.cpp、stable-diffusion.cpp、audio.cpp 和 ComfyUI 的专用端点。
  • 零依赖:使用 Go 编写,性能高且简洁,仅需一个二进制文件和一个配置文件。
  • 集成 Web UI:包含实时界面,可用于测试模型、监控 token 指标并检查请求/响应。
  • 高级资源管理:支持通过 TTL(生存时间)设置自动卸载模型,并支持 Docker/Podman 容器。
  • 可观测性:提供详细的日志流(代理、上游、各模型),以及系统和 GPU 使用情况的 Prometheus 指标。

相关

  • Dispatch
  • 项目
  • 项目
  • 项目