3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM webMethods Integrationを用いてwatsonx.aiを呼び出してみる

Last updated at Posted at 2025-01-20

watsonx.aiを用いたテキスト生成をAPIで呼び出したい

watsonx.aiは様々なLLMを提供し、API経由で生成AIを用いた処理を呼び出すことが可能です。しかし、APIを呼び出すためには、一度IAMのトークンを取得し、そのトークンをヘッダーにセットして呼び出すという2段階の処理が必要になります。そこで、今回は、トークンの取得>テキスト生成の一連のフローをiPaaS製品であるwebMethodsを用いて実装し、単一のAPIとして呼び出すことが可能にしてみたいと思います。

プロジェクトIDとIAMAPIキーの取得

事前の準備として、watsonx.ai上にプロジェクトを作成し、APIキーを生成する必要があります。

プロジェクトIDの確認

watsonx.ai上でプロジェクトを作成し、プロジェクトIDを確認します。プロジェクトIDは管理タブから確認することが可能です。
image.png

APIキーの作成

IBMCloud上でIAM > APIキーと進み、APIキーを作成します。作成されたAPIキーは後から見ることができないので、コピーして保存しておきます。
image.png

Workflowの作成

webMethodsにログインし、新規Workflowを作成します。
image.png
まず、watsonx.aiへの接続部分を定義します。パレットより、2つのHTTP Requestノードを配置します。
image.png
1つ目のHTTP Requestノードをダブルクリックして開き、IAMトークン取得のためのリクエストの詳細を定義します。トークンの取得には以下のようなリクエストを送信する必要があります。

curl -X POST 'https://iam.cloud.ibm.com/identity/token' 
-H 'Content-Type: application/x-www-form-urlencoded' 
-d 'grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=MY_APIKEY'

そこで、以下の様にパラメータを設定します。
image.png
次の画面で、実際に呼び出して結果をテストすることが可能です。次の様にトークンが取得できていればOKです。
image.png
次に、実際のテキスト生成のリクエストを設定します。.ai側のプロンプト・ラボで「コードの表示」アイコンをクリックすると実際のAPI呼び出しに必要なパラメータを確認することが可能です。
image.png
先ほどと同じように、HTTP Requestの設定を行います。パラメータをマップする際は、{{と中括弧を2つタイプすか、左側のデータ項目をドラッグ&ドロップして定義することができます。
AuthorizationヘッダーをBearerという文字列の後にスペースを入れて、取得したトークンをマップします。
Bodyについては、最終的には呼び出し時のパラメータをinputにマップしますが、ひとまず、固定値でJSONを指定しておくことにします。
image.png
先ほどと同様にテストしてみます。正しくレスポンスを取得できていれば成功です!
image.png

Webhookの構成

ここまででWorkflowが完成しましたが、外からAPIとして呼び出せる形にはなっていません、このWorkflowをWebhookとして呼び出し、結果を受け取れるように変更します。
まず、トリガーノードをクリックし、Webhookを選択します。
image.png
BodyのJSONの形式を指定します。
image.png
次のページで、追加の設定を行います。今回はWebhook Keyによる認証をONにして、また、戻りを受け取れるように、Autoconnect Return Sync on WebhookをOnにします。
image.png
Return Data on Sync Webhookというノードが自動的に作られるので、2つのHTTPRequestとStopノードの間に接続します。
image.png
ダブルクリックして以下の様に設定します。Response Dataは文字列ですが、正しいJSONになるように注意してください。次の画面でテストをして動作確認します。
image.png
最後にテキスト生成のリクエスト(2番目のHTTP Request)にWebhook呼び出しのinputを含めるように修正します。JSONの中に、{{
image.png
最後に保存してフローの開発は完了です。(フローはデフォルトでアクティブになっているはずです)

POSTMANを用いたテスト

最後に出来上がったフローをPOSTMANから呼び出してみましょう。
先ほどwebhook keyによる認証をONにしたため、ヘッダーにwebhook_keyとしてキーを設定し、入力パラメータを指定して呼び出します。次の様に結果が受け取れれば成功です。
image.png

まとめ

この記事ではwebMethodsを使用してwatsonx.aiを単発のWebhookとして呼び出すための手順を説明しました。筆者はwebMethodsを使用するのは初めてでしたが、特にマニュアルを見ることもなく、30分程度でフローを作成することができました。各ノード毎に簡単に動作確認できるのも良い点だと感じました。webMethodsは様々なコネクターを提供するので、様々なSaaSアプリケーションからWebhookで複数の処理をフローとして呼び出したり、APIをスケジュール起動して呼び出す際などに便利に使えそうです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?