关于 deploy-chalk-function
用于使用 `chalkcompute` 包编写和部署 Python 函数的技能。内容涵盖脚本配置、必需凭据、装饰器行为,以及远程调用已部署函数。
主要功能
- 01使用 `uv` 配置 Python 脚本
- 02Python 版本与依赖约束
- 03所需的 Chalk 环境变量
- 04导入时部署的装饰器行为
- 05远程调用已部署函数
适用场景
- 01创建 Chalk Python 函数脚本
- 02配置部署所需凭据
- 03远程调用已部署函数
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ chalk-ai/ chalk-ai-plugins --skill deploy-chalk-function安装后在 Claude Code 中输入/deploy-chalk-function确认已加载。
详细介绍
部署 Chalk 函数
创建一个使用 chalkcompute 包的 Python 文件(PyPI 上的名称是 chalkcompute,不是 chalk-sandbox-sdk)。使用 uv shebang。将 Python 版本固定为 <3.14,因为一个传递依赖 Rust 包(chalk-remote-call-python)使用 PyO3 构建,而 PyO3 目前最高支持 3.13。
#!/usr/bin/env -S uv run --script
#
# /// script
# requires-python = ">=3.12,<3.14"
# dependencies = ["chalkcompute"]
# ///
import chalkcompute
@chalkcompute.function()
def some_function(arg_1: str) -> str:
return f"hi {arg_1}"
if __name__ == "__main__":
print(some_function("world"))
注意:
- 必须调用
@chalkcompute.function——@chalkcompute.function()(仅限关键字参数)。直接使用@chalkcompute.function会引发TypeError: function() takes 0 positional arguments but 1 was given。 - 装饰器会在导入时部署函数(构建镜像、上传并注册)。
- 调用装饰后的函数(
some_function("world"))会远程执行该函数并返回结果。
必需的环境变量
SDK 从环境变量中读取凭据,而不是从 chalk CLI 配置中读取。环境变量是 CHALK_ENVIRONMENT_ID,不是 CHALK_ENVIRONMENT。
CHALK_API_SERVER
CHALK_CLIENT_ID
CHALK_CLIENT_SECRET
CHALK_ENVIRONMENT_ID
你可以从当前项目的 chalk config 输出中读取这些值。调用示例:
CHALK_API_SERVER=... CHALK_CLIENT_ID=... CHALK_CLIENT_SECRET=... CHALK_ENVIRONMENT_ID=... ./your_script.py
如果未设置 CHALK_ENVIRONMENT_ID,即使 CHALK_CLIENT_ID/CHALK_CLIENT_SECRET 有效,也会从 CustomImageService.GetOrBuildCustomImage 收到 permission_denied 错误。
本地 SDK 源码
如果配置的索引中没有 chalkcompute(例如,脚本无法从 PyPI 解析 chalkcompute),请将 uv 指向 chalk-sandbox-sdk 的本地检出副本:
# [tool.uv.sources]
# chalkcompute = { path = "/path/to/chalk-sandbox-sdk" }
评论
支持 Markdown