1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

watsonx OrchestrateのフローをAPIで呼び出してみる

Posted at

Agentic WorkflowをAPIで呼び出したい

watsonx Orchestrate上で開発したAgentic Workflowはこれまで、エージェントから呼び出されることが前提でしたが、昨年のアップデートでAPI経由でも呼び出すことができるようになりました。この記事ではAPIによるAgentic Workflowの使用方法について説明します。

Agentic Workflowとは?

Agentic Workflowはwatsonx Orchestrate上に実装可能なワークフローで、ツールの呼び出しや分岐、ユーザーへのデータ表示などをフロー形式で実装することが可能な機能です。
生成AIによるテキスト生成や、ドキュメント分類、テキスト抽出処理なども呼び出すことが可能なため、アップロードされたファイルの種類を分類してテキスト化して返すなどといった処理も可能です。

image.png

テスト用フローの作成

まずは以下のような、Stringの入出力のフローを定義してみます。
image.png
チャットから起動すると以下のように返答がきました。
image.png
こちらのフローをAPIで呼び出してみたいと思います。

APIによるフローの呼び出し

同期呼び出し用のAPIと非同期呼び出し用のAPIが用意されていますが、非同期呼び出しを行うにはコールバック用のエンドポイントを用意する必要があるため、今回は同期呼び出し用のAPIを使ってみたいと思います。

flow_idの取得

SaaS版のURLは以下の通りです。これを呼び出すには、まずflow_idを取得する必要があります。
https://api.{hostname}/instances/{tenant_id}/v1/orchestrate/flows/{flow_id}/run?request_timeout=REPLACE_THIS_VALUE

flow_idの取得方法は公式ドキュメント上では明確な記載が見つけられませんでしたが、Toolのidで良いようです。Toolのidは以下のAPIで取得可能です。

https://api.{hostname}/instances/{tenant_id}/v1/orchestrate/tools?ids=REPLACE_THIS_VALUE&names=REPLACE_THIS_VALUE

watsonx OrchestrateのAPIを呼び出すには、まず、JWTトークンを取得する必要がありますが、利用している環境によってトークンの取得方法が異なるため、ここでは割愛します。

flowの呼び出し

flow_idが分かったらフローを呼び出してみます。この時、入力データは以下のように通常のJSONオブジェクトとして指定すれば問題ありませんでした。

Postmanから実行したところ正しく結果を取得できました!
image.png

ファイルを送信したい場合はどうするのか?

フローの入力タイプとしては以下のものが利用可能です。
image.png
先程のフローの入力にファイルタイプのパラメータを追加し、ドキュメント抽出ノードを追加し、領収書の金額を抜き取る処理を設定します。
image.png

ファイルの場合はどのようにデータを送信するのか疑問だったのでいろいろと検証してみたのですが、結論から言うと以下のようなData URL形式で送付すればOKでした。

{"inputFile":"data:application/pdf;name=test.pdf;base64,JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PC9UaXRsZSA8RkVGRjMwQjkzMERFMzBGQzMwQzgwMDQ1MDA1OD4KL0NyZWF0b3IgKE1vemlsbGEvNS4wIFwoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0XCkgQXBwbGVXZWJLaXQvNTM3LjM2IFwoS0hUTUwsIGxpa2UgR2Vja29cKSBDaHJvbWUvMTQxLjAuMC4wIFNhZmFyaS81MzcuMzYpCi9Qcm9kdWNlciAoU2tpYS9QREYgbTE0MSkKL0NyZWF0aW9uRGF0ZSAoRDoyMDI1MTAyODExMTcxMSswMCcwMCcpCi9Nb2REYXRlIChEOjIwMjUxMDI4MTExNzExKzAwJzAwJyk+PgplbmRvYmoKMyAwIG9iago8PC9jYSAxCi9CTSAvTm9yb

以下のファイルをbase64でエンコードし、DataURL形式で送信してみます。
image.png

正しく結果が返ってきました!
image.png

まとめ

この記事では、watsonx OrchestrateのAgentic WorkflowをAPIで呼び出す方法について説明しました。業務処理を実装する際には、チャット形式で自然言語を用いてエージェントとやりとりするパターンだけではなく、今回紹介したようなフローを呼び出せば十分なケースもあります。Agentic Workflowの機能としては、LLM呼び出しだけではなく、今回使用した文書処理や、ルール・エンジンの呼び出しなども含まれるので、これらを用いた共通処理フローを実装しておき、エージェントからだけではなく、APIで呼び出すパターンも実用的なのではないかと思います。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?