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. 01Chalk 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 パッケージ(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" }

コメント