deploy-chalk-function について
`chalkcompute` パッケージを使った Python 関数の作成とデプロイを支援するスキルです。スクリプト設定、必要な認証情報、デコレーターの動作、デプロイ済み関数のリモート呼び出しを扱います。
主な機能
- 01`uv` による Python スクリプト設定
- 02Python バージョンと依存関係の制約
- 03必要な Chalk 環境変数
- 04インポート時にデプロイするデコレーター
- 05デプロイ済み関数のリモート呼び出し
活用シーン
- 01Chalk 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 パッケージ(PyPI での名前は chalk-sandbox-sdk ではなく chalkcompute)を使用する Python ファイルを作成します。uv のシバンを使用してください。依存パッケージである Rust の chalk-remote-call-python が PyO3 を使用してビルドされますが、現在 PyO3 は 3.13 までしか対応していないため、Python のバージョンを <3.14 に固定してください。
#!/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のように括弧を付けずに記述すると、TypeError: function() takes 0 positional arguments but 1 was givenが発生します。- デコレーターはインポート時に関数をデプロイします(イメージのビルド、アップロード、登録を行います)。
- デコレートされた関数(
some_function("world"))を呼び出すと、リモートで実行され、結果が返されます。
必須の環境変数
SDK は chalk CLI の設定ではなく、環境変数から認証情報を読み取ります。環境変数は CHALK_ENVIRONMENT ではなく CHALK_ENVIRONMENT_ID です。
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" }