mcpField
I
iii-python-sdk

iii-python-sdk

github.com/iii-hq開発219 回インストール
リポジトリ

iii-python-sdk について

iii-python-sdkは、ワーカーをiii engineに接続する非同期Python SDKです。関数やトリガーの登録、同期・非同期呼び出し、リクエスト/レスポンス型、接続状態の監視を提供します。

主な機能

  1. 01ワーカーをiii engineに接続
  2. 02非同期関数ハンドラーの登録
  3. 03トリガーを関数に関連付け
  4. 04関数の同期・非同期呼び出し
  5. 05ハンドラー内のログとトレース情報へのアクセス
  6. 06関数検出と接続状態の監視

活用シーン

  1. 01Pythonワーカーをiii engineに接続
  2. 02非同期ハンドラーとトリガーの登録
  3. 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 / ApiResponseHTTP リクエスト/レスポンスの型(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 スキルが適している場合は、このスキルを適用しないでください。
  • このスキルの例を適用する前に、必ず環境と安全性の制約を確認してください。

コメント