llama-swap
- mostlygeek/llama-swap
- MIT, Golang
- 提供反向代理
- 按需启动 进程
- 可以使用 proxy 指向上游服务,cmd 可以是 docker 启动
docker pull ghcr.io/mostlygeek/llama-swap:cuda
llama:
image: ghcr.io/mostlygeek/llama-swap:v172-cuda-b7062
container_name: llama
command:
- -watch-config
- -config
- /llama/llama-swap.yaml
volumes:
- ./models:/models
- ./models:/root/.cache/llama.cpp
# the user is app, home is /app, uid=10001
- ./models:/app/.cache/llama.cpp
- ./llama:/llama
ports:
- 11435:8080
environment:
HF_ENDPOINT: https://modelscope.cn
sysctls:
net.ipv6.conf.all.disable_ipv6: 1
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
API
- OpenAI API
v1/completionsv1/chat/completionsv1/embeddingsv1/audio/speech,v1/audio/transcriptionsv1/images/generations,v1/images/edits(基于上游引擎能力透传)
- 对于图片生成 (
v1/images/*):- 原理: llama-swap 本身不实现也不依赖特定量化引擎处理图片生成,它只负责依据请求中的 model 解析并按需启动/唤醒在
llama-swap.yaml里配置的对应的上游cmd或proxy。 - 实现方式: 可以配置一个外部程序(如 LocalAI、Stable Diffusion WebUI 加 OpenAI proxy、或者是使用 ComfyUI 的 OpenAI API 封装),只要上游端口能响应标准的
POST /v1/images/generations请求即可被成功代理。
- 原理: llama-swap 本身不实现也不依赖特定量化引擎处理图片生成,它只负责依据请求中的 model 解析并按需启动/唤醒在
- llama-server
v1/rerank,v1/reranking,/rerank/infill(代码补全)/completion
- llama-swap 自身管理接口
/ui/upstream/:model_id(直接访问对应上游实例)/models/unload/running,/log,/health,/api/events,/logs/stream- /health
- /api/events
- /logs/stream