使用 Codespaces 开发

Codespaces 是 BentoCloud 上的一个开发平台,旨在解决构建 AI 应用中的挑战

  • 本地开发环境中对各种强大 GPU 的访问受限

  • 由于容器镜像构建过程导致迭代周期缓慢

  • 开发环境和生产环境之间行为不一致

使用 Codespaces,您可以在使用喜欢的 IDE 的同时将本地开发环境连接到 BentoCloud。这使您可以在与生产环境一致的可靠环境中,使用强大的云 GPU 进行开发。您的更改会在 BentoCloud 上实时更新,因为 Codespaces 会在检测到本地更新时自动热重载。这确保您可以快速自信地迭代您的应用程序。

创建 Codespace

  1. 为您的项目定义运行时环境。为了测试目的,您可以使用Hello World 项目作为示例。

  2. 运行以下命令创建 Codespace

    bentoml code
    
  3. (可选)如果您的项目需要安全的环境变量,例如 API 密钥,我们建议您为其创建 secrets。例如

    bentoml secret create huggingface HF_TOKEN=<your_hf_token>
    bentoml code --secret huggingface
    
  4. 按照屏幕上的说明创建新的 Codespace(或根据提示附加到现有 Codespace)。创建后,您可以在 BentoCloud 的 Codespaces 部分中查看它。

    Screenshot of a Codespace running on BentoCloud

测试您的应用程序

Codespace 启动并运行后,您可以通过调用其公开的端点来测试您的应用程序。

在使用 Codespace 开发时,以下更改将在您的本地环境和 Codespace 之间自动同步。这意味着任何本地代码更新都会反映在远程 Codespace 中,并自动触发重新加载。

  • BentoML Service 代码,包括添加或删除 Service

  • 模型

  • 系统包

  • Python 依赖项

Codespace 日志将直接流式传输到您的终端,为您提供应用程序性能的实时反馈。您还可以使用 Codespace 详情页面上提供的端点 URL 调试应用程序。

请注意,以下更改无法同步

  • Python 版本 (Codespaces 当前使用 Python 3.11)

  • 基础镜像和 Docker 选项

构建您的 Bento

开发完成后,您可以直接从 Codespace 构建 Bento。为此,请单击 Build Bento 按钮。

Screenshot of Codespace detail page on BentoCloud showing the Build Bento button

构建成功后,您可以查看 Bento 并使用它创建部署。

开发后

要从终端退出 Codespace,请按 Ctrl+C。请注意,这不会自动终止远程 Codespace。要终止远程 Codespace,请运行以下命令

bentoml deployment terminate <codespace_name>

重新附加到现有 Codespace

要重新附加到之前创建的 Codespace,请使用以下命令

bentoml code --attach <codespace_name>

这将使远程 Codespace 与您当前的本地代码同步。