theroyallab/tabbyAPI
The official API server for Exllama. OAI compatible, lightweight, and fast.
TabbyAPI – 兼容 OpenAI 的高速开源 LLM 服务,提供 REST API
是什么
- 一个基于 Python 3.10–3.14 的 FastAPI 应用,封装了 ExllamaV3 推理引擎。它将本地存储的 LLM 检查点转换为一个 Web 服务,其 JSON 模式与 OpenAI 的
v1/completions和v1/chat/completions端点完全一致。
为何重要
- ExllamaV3 以 分页注意力、连续批处理 和 Nvidia Ampere+ 显卡上的 GPU 加速推理 著称。TabbyAPI 将这些性能优势通过熟悉的 HTTP API 暴露出来,使你无需编写 CUDA 代码即可轻松集成到现有工具(如 LangChain、AI-Horde、自定义前端)中。
主要功能(README 中列出)
- OpenAI 兼容 API – 可直接替换
chat/completions和completions端点。 - 模型生命周期管理 – 运行时可加载、卸载和切换模型。
- HuggingFace 下载器 – 可直接从 Hub 下载模型。
- 嵌入模型支持 – 可同时提供向量嵌入与文本生成。
- 模式感知提示 – 支持 JSON 模式、正则表达式和 EBNF 验证,用于结构化输出。
- AI-Horde 集成 – 可选择性地参与分布式推理网络。
- 推测性解码 – 使用快速的“草稿”模型加速生成。
- 代理层 – 可实时覆盖客户端参数或采样器。
- Jinja2 模板 – 支持灵活的提示构造,与 HuggingFace 聊天格式一致。
- 异步并发 – 通过
asyncio同时处理多个请求。 - 工具/函数调用 – 支持 OAI 风格的函数调用。
- 嵌入栈(可选) – 额外 Docker 标签包含
infinity-emb栈,用于高吞吐量向量化。
支持的模型类型
- Exl3(ExllamaV3 格式)– 推荐用于最佳性能。
- FP16 / BF16 检查点。
- 支持 Nvidia Ampere 或更新 GPU 上的分页注意力批处理。
如何开始
- Docker(推荐) – 拉取预构建镜像:
API 可通过docker pull ghcr.io/theroyallab/tabbyapi:latest # CUDA 12.8 docker run --gpus all -p 5000:5000 \ -v /path/to/models:/app/models \ ghcr.io/theroyallab/tabbyapi:latesthttp://localhost:5000访问。 - 其他标签 –
cu13用于 CUDA 13,latest-extras包含嵌入栈。 - 从源码构建 – 克隆仓库,安装 Python 依赖,运行 FastAPI 应用(
uvicorn tabbyapi.main:app)。详见 Wiki 中的详细步骤和 Docker-Compose 示例。 - 配置 – 模型目录、端口和可选设置可通过环境变量或
config.yaml文件控制(Wiki 中有文档)。
典型使用场景
- 在桌面工作站上进行个人或爱好用途的 LLM 服务。
- 无需支付云 API 费用,快速原型开发 ChatGPT 风格应用。
- 与自托管 UI 项目(如 SillyTavern 或 Text Generation WebUI)集成。
- 实验推测性解码、函数调用或自定义提示模板。
限制
- 定位为 爱好项目,不适用于生产级扩展或高可用部署。
- 滚动发布状态意味着可能存在破坏性变更;更新后可能需要重新安装依赖。
许可证
- AGPL-v3 – 以服务形式部署的任何修改都必须以相同许可证公开。
社区与支持
- 官方 Discord 服务器(README 中链接)用于故障排查和功能请求。
- 欢迎通过拉取请求贡献代码;仓库提供问题/拉取请求模板。
致谢上游项目
- ExllamaV2/V3、Aphrodite Engine、infinity-emb、FastAPI、Text Generation WebUI、SillyTavern 等。
总结:TabbyAPI 是一个轻量级、开源的网关,让你能以 OpenAI 风格的 HTTP API 在本地运行现代 LLM,利用快速的 ExllamaV3 后端。它最适合希望获得商业 LLM API 自托管替代方案的开发者和爱好者。
相关
- 项目
- 项目
- Dispatch
- 项目
- 项目