スキルのAPI呼び出し
watsonx Orchestrateの先日のアップデートでこれまでチャットからのみ呼び出し可能だったスキルをAPI経由で呼び出すことが可能になりました。
これにより、カスタム・スキルや自動化のスキルをAPIから呼び出して活用することが可能です。この記事では、ビジネス・ルールをスキルとしてAPIで呼び出す手順について説明します。
APIキーの取得
APIとしてスキルを呼び出すには、まずAPIキーを発行する必要があります。少し分かりにくいのですが、AWS版ではAI-Assistant側でAPI-Keyの設定を行います。Assistant Settingsより、Generate APIKeyをクリックしてAPIキーを生成してください。
APIの呼び出し
APIの呼び出しは次のステップで行います。
トークンの取得
まず、先ほどのAPIキーを用いてトークンを取得します。トークンの取得は以下のエンドポイントに対してPOSTすることで取得できます。
RequestBodyにAPIをセットします。
https://iam.platform.saas.ibm.com/siusermgr/api/1.0/apikeys/token
トークンが返されるので、以降のリクエストはBearerトークンに取得したトークンをセットしてリクエストを送信します。
スキル・セットのリストの取得
次に、スキル・セットのリストを取得します。
テナントIDを含める必要がありますが、テナントIDは先ほどAPIキーを発行した画面でViewDetailsをクリックした際に表示されるService instance URLのinstances/以降の文字列になります。また、画面右上のアイコンをクリックして表示される製品情報からも確認することが可能です。
https://api.dl.watson-orchestrate.ibm.com/instances/{テナントID}/v1/skillsets
戻りを確認すると分かるのですが、Personal Skillsのskillset_idは"_personal_"となるようですので、実際にはこのリクエストは省略可能です。
スキル・セットの取得
スキル・セットのIDを取得したら以下のリソースにアクセスし、スキルの一覧を取得します。
https://api.dl.watson-orchestrate.ibm.com/instances/{テナントID}/v1/skillsets/{スキル・セットID}
以下のようなスキルの配列が返されます。
実際にスキルを呼び出す際には、skillIDが必要になりますが、/skills/の後ろにある文字列がスキルIDとなります。
OpenAPIの取得
呼び出すスキルのパスやBodyが分かっている場合には必要ないですが、OpenAPI定義を取得することが可能です。OpenAPI定義を取得するには以下のリソースにアクセスします。
https://api.dl.watson-orchestrate.ibm.com:443/instances/{テナントID}/v1/skillsets/{スキル・セットID
}/skills/{スキルID}/openapi
これは、先ほどの戻りの"openapi"プロパティと同一です。
スキルの実行
先ほど取得したOpenAPI定義のServerURL/pathに対して、適切なメッセージを送信することでスキルの実行が可能です。
今回のケースでは、
https://api.dl.watson-orchestrate.ibm.com:443/instances/{テナントID}/v1/skills/{スキル・セットID
}/{スキルID}/helloworld/execute
に以下のメッセージをBodyとしてPOSTします。
{
"name":"haseshin"
}
以下の様に正しくスキルの実行結果が返ってきました。
なお、スキルを実行する際にはそのスキルがカタログから追加されている必要があることに注意してください。
まとめ
この記事ではスキルのAPIによる呼び出し方法について説明しました。カスタム・スキルについてはもともとAPIとして存在するものなのであまりメリットは無いですが、認証をorchestrate側で行うことに違いがあります。また、ビジネス・ルールやワークフローについてはこれまでチャットからのみ呼び出すことが可能でしたが、API経由で呼び出すことが可能になりました。
#watsonxorchestrate