mcpField
D
deploy-chalk-function

deploy-chalk-function

github.com/chalk-ai云与 DevOps01.1k 次安装6 周前更新
代码仓库

关于 deploy-chalk-function

用于使用 `chalkcompute` 包编写和部署 Python 函数的技能。内容涵盖脚本配置、必需凭据、装饰器行为,以及远程调用已部署函数。

主要功能

  1. 01使用 `uv` 配置 Python 脚本
  2. 02Python 版本与依赖约束
  3. 03所需的 Chalk 环境变量
  4. 04导入时部署的装饰器行为
  5. 05远程调用已部署函数

适用场景

  1. 01创建 Chalk Python 函数脚本
  2. 02配置部署所需凭据
  3. 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