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)。詳情步驟與 Docker-Compose 範例請見 Wiki。 - 設定 – 模型目錄、埠與可選設定可透過環境變數或
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
- 專案
- 專案