来源:llm/tabby

Tabby: 自托管 AI 编程助手#

本文展示了如何仅使用一个 CLI 命令,通过 SkyPilot 托管一个 AI 编程助手。

Tabby

背景#

Tabby 是一个自托管 AI 编程助手,提供了一个开源的本地替代方案,可替代 GitHub Copilot。它具有以下几个关键特性:

  • 自包含,无需数据库管理系统或云服务。

  • OpenAPI 接口,易于与现有基础设施集成(例如云 IDE)。

  • 支持消费级 GPU。

SkyPilot 是一个来自加州大学伯克利分校的开源框架,用于在任何云上无缝运行机器学习任务。通过简单的 CLI,用户可以轻松启动许多集群和作业,同时大幅降低云账单。目前,支持 AWSGCPAzureLambda CloudIBMOracle Cloud Infrastructure (OCI)Cloudflare R2Samsung Cloud Platform (SCP)。查看文档了解更多信息。

步骤#

下方使用的所有 YAML 文件都位于SkyPilot 仓库中。

  1. 安装 SkyPilot 并检查云凭据是否存在

    # pip install skypilot
    pip install "skypilot[aws,gcp,azure,lambda]"  # pick your clouds
    sky check
    
  2. 获取 Tabby SkyPilot 配置

    git clone https://github.com/skypilot-org/skypilot.git
    cd skypilot/llm/tabby
    
  3. 启动一个 Tabby 集群:您可以通过 docker-compose.cuda.yaml(GPU)docker-compose.yaml(CPU) 文件中 command 字段的 --model 参数来选择使用的模型。默认使用 TabbyML/SantaCoder-1B,了解更多模型选项,请查看 Tabby 文档

     sky launch -c tabby tabby.yaml
    

Connect the extension to your Tabby server

  1. 看到 tabby server is ready, enjoy! 后,您可以使用以下命令获取公共 IP

    sky status --ip tabby
    20.92.236.53
    

    您也可以直接使用 ssh 命令将端口映射到 localhost。

    ssh -L 8080:localhost:8080 tabby
    
  2. 在您的 IDE 中安装 Tabby 扩展。例如,在 VS Code 中,您可以从 marketplace 安装Tabby 扩展

  3. 将您的 IDE 配置为使用 $(sky status --ip tabby):8080 作为 Tabby 的端点。

Connect the extension to your Tabby server

  1. 打开一个 Python 文件并开始编码!Tabby 将在您输入时开始提供代码片段建议。

Tabby in VS Code

清理#

完成后,您可以停止或销毁集群

  • 要停止集群,请运行

    sky stop tabby  # or pass your custom name if you used "-c <other name>"
    

    您可以使用以下命令重启已停止的集群并重新启动 Tabby(YAML 中的 run 部分)

    sky launch tabby.yaml -c tabby --no-setup
    

    请注意 --no-setup 标志:已停止的集群会保留其磁盘内容,因此我们可以跳过重新执行 setup。

  • 要销毁集群(不可重启),请运行

    sky down tabby  # or pass your custom name if you used "-c <other name>"
    

要查看您的集群,请运行 sky status,它可以一览无余地显示您在所有区域/云中的所有集群。

要了解有关 SkyPilot 命令的更多信息,请参阅快速入门

包含的文件#