iii-python-sdk について
iii-python-sdkは、ワーカーをiii engineに接続する非同期Python SDKです。関数やトリガーの登録、同期・非同期呼び出し、リクエスト/レスポンス型、接続状態の監視を提供します。
主な機能
- 01ワーカーをiii engineに接続
- 02非同期関数ハンドラーの登録
- 03トリガーを関数に関連付け
- 04関数の同期・非同期呼び出し
- 05ハンドラー内のログとトレース情報へのアクセス
- 06関数検出と接続状態の監視
活用シーン
- 01Pythonワーカーをiii engineに接続
- 02非同期ハンドラーとトリガーの登録
- 03ブロッキングまたはノンブロッキング呼び出しの選択
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ iii-hq/ skills --skill iii-python-sdkインストール後、Claude Code で/iii-python-sdkを入力して読み込まれたか確認します。
詳細
Python SDK
ワーカーを iii エンジンに接続するための非同期 Python SDK です。
ドキュメント
API リファレンス全文:https://iii.dev/docs/api-reference/sdk-python
インストール
pip install iii-sdk
主なエクスポート
| エクスポート | 用途 |
|---|---|
register_worker(address, options?) | エンジンに接続し、クライアントを返します |
InitOptions(worker_name, otel?) | 接続設定 |
register_function(id, handler) | 非同期関数ハンドラーを登録します |
register_trigger(type, function_id, config) | トリガーを関数に紐付けます |
trigger(request) | 関数を同期的に呼び出します |
trigger_async(request) | 関数を非同期に呼び出します |
get_context() | ハンドラー内でロガーとトレースコンテキストにアクセスします |
ApiRequest / ApiResponse | HTTP リクエスト/レスポンスの型(pydantic) |
IStream | カスタムストリーム実装用のインターフェース |
on_functions_available(callback) | 関数の検出を監視します |
on_connection_state_change(callback) | 接続状態を監視します |
主な注意点
register_worker()は同期クライアントを返しますが、ハンドラーは非同期ですApiResponseではstatus_codeではなく、camelCase のstatusCode(pydantic のエイリアス)を使用します- イベントループを維持するには、ワーカーを
while True: await asyncio.sleep(60)で終了させないようにします - ハンドラー内で CPU 負荷の高い同期処理を行う場合は、
asyncio.to_thread()を使用します - SDK は
trigger_async(request)と同期的なtrigger(request)の両方を実装しています。非同期ハンドラー内ではtrigger_asyncを使用し、ブロッキング動作が必要な同期スクリプトまたはスレッドではtriggerを使用してください。
例
# Async invocation (non-blocking, typical inside handlers)
result = await iii.trigger_async({
"function_id": "greet",
"payload": {"name": "World"}
})
# Sync invocation (blocks the current thread, useful in sync contexts)
result = iii.trigger({
"function_id": "greet",
"payload": {"name": "World"}
})
パターンの範囲
- 使用パターンと動作する例については、
iii-functions-and-triggersを参照してください - Node.js SDK については、
iii-node-sdkを参照してください - Rust SDK については、
iii-rust-sdkを参照してください
使用する場面
- タスクが主に iii エンジンの
iii-python-sdkに関する場合に、このスキルを使用します。 - リクエストでこのパターンまたは同等の実装が直接求められた場合に適用します。
適用範囲
- 無関係なタスクに対する汎用的な代替手段として、このスキルを使用しないでください。
- より具体的な iii スキルが適している場合は、このスキルを適用しないでください。
- このスキルの例を適用する前に、必ず環境と安全性の制約を確認してください。
コメント
Markdown 対応