关于 modal
Modal 是用于使用 Modal 云平台的技能,该平台为 AI 工作负载提供无服务器计算,包括 GPU。它说明 CLI、文档查询和 SDK 的使用方式;执行 Modal 操作需要互联网连接和授权令牌。
主要功能
- 01提供使用 CLI 运行和部署代码的指引
- 02说明资源管理与 Apps 观测方式
- 03提供本地 API 参考和下载的指南
- 04指导查询版本与更新日志
- 05介绍使用 .aio() 接口的异步 Python
适用场景
- 01在 Modal 上运行或部署工作负载
- 02管理 Modal 资源或观测 Apps
- 03查找 SDK 特定行为的文档
- 04编写调用 Modal 的异步 Python
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ modal-labs/ modal-client --skill modal安装后在 Claude Code 中输入/modal确认已加载。
详细介绍
概述
这是使用 Modal 云平台的基础技能。
Modal 是一个面向 AI 工作负载的平台。它提供高度可扩展的无服务器计算(包括 GPU),且只需极少的配置。
使用 CLI 或运行依赖 modal 库的代码都需要互联网连接和授权令牌。Modal 没有“本地开发模式”。
文档
官方文档是获取平台最新信息的最佳来源。在规划、调试或回答问题时,请充分利用这些文档!
Modal 的最新文档(可能涵盖较新 SDK 版本中引入的功能)列于 https://modal.com/llms.txt。该文件包含所有公开文档的标题和 URL;直接阅读它可以帮助你找到特定内容。添加 .md 扩展名以纯文本形式获取文档。
通过 Modal CLI 安装时,除非传入 --no-docs,否则该技能会在 references/ 中安装本地文档:
api/:根据用于安装或更新该技能的 SDK 的签名和文档字符串,在本地生成的 API 参考。guide/和examples/:从在线文档下载的指南和示例。它们反映下载时的网站内容,可能涵盖该 SDK 版本尚不可用的功能。
你也可以参考 https://modal.com/llms-full.txt,该文件汇总了所有文档,内容非常庞大。*不要*将其完整读入主上下文,但可以用来搜索。
使用 CLI
modal CLI 可用于运行或部署代码、管理资源,以及查看正在运行的 App。在开发的各个阶段,它都是与 Modal 交互的重要工具。
运行 modal --help 查看所有可用的 CLI 命令。
运行 modal [command] --help 可查看每条命令的详细信息。请通过 --help 了解功能:每个版本都会添加新功能!如果遇到用法错误,请务必查看 --help。
提示:许多 CLI 命令都接受 --json 标志,以便更轻松地解析输出,例如使用 jq。
modal CLI 是 Python SDK 的一部分,并在 Python 运行时中执行。根据用户偏好的 Python 开发工作流,你可能需要在 modal CLI 命令前加上 uv run 等前缀,以确保 Python 环境一致。也可以通过 uvx 将 CLI 作为独立工具使用,但仅限在 Python 项目之外工作时使用。
运行 Modal CLI 命令时不要附加终端(TTY/PTY),这样日志会以纯文本形式显示,而不会反复重绘旋转指示器。
保持信息更新
根据训练数据,你对 Modal 已有相当深入的了解,但可能不了解新功能或 API 的近期变更。Modal 会持续添加新功能。在规划或调试时阅读相关文档,有助于你了解在 Modal 上完成任务的最新方式。
Modal CLI 提供了 modal changelog 命令,用于了解近期变更。以下是一些有用的调用方式:
modal changelog --since [DATE]查看自你的知识截止日期以来新增的变更modal changelog --since [VERSION]将代码库迁移到较新版本时查看变更modal changelog --newer了解更新后可用的功能
注意:modal changelog 的输出可能很长。不要将其完整加载到上下文中。
运行 modal --version 查看当前使用的 SDK 版本。
如果代码使用了已弃用的 API,Modal 会发出警告。请根据警告信息和相关文档,将代码迁移到稳定 API。
使用此技能前,请检查元数据中的版本是否与 modal --version 完全一致。如果不一致,请运行 modal skills update 更新;如果此技能位于 .claude/ 目录下,请传入 --claude;如果它位于主目录而非项目目录下,请传入 --global。
异步 Python
编写异步 Python 时,请使用 Modal 的 .aio() 接口(例如,await modal.Sandbox.create.aio(...)、await modal.Function.remote.aio(...)),以便 Modal 通过异步协程执行 I/O 操作。
其他语言
目前,Python 是 Modal Functions 唯一支持的运行时语言,但 Modal 提供 JavaScript(TypeScript)和 Go SDK:
- JavaScript SDK:https://modal.com/docs/sdk/js/latest/intro.md
- Go SDK:https://modal.com/docs/sdk/go/latest/intro.md
Go / JS SDK 尚不如 Python SDK 成熟,可能缺少某些功能。目前 Go / JS SDK 的适用范围包括:(1) 创建和使用 Sandbox;(2) 调用已部署的 Modal Functions(即用 Python 定义的 Functions)。
这些 SDK 主要通过托管在 GitHub 上的示例进行文档说明,而非通过 Modal 官方文档进行说明。你在训练中对这些 SDK 的了解可能少得多,因此请参考这些示例。