文書処理の始め方
このトピックでは、文書処理とその watsonx Orchestrate 機能について紹介します。 このトピックの情報は、新規ユーザーが機能を効果的に理解できるよう設計されています。 文書を分類したり、文書(契約書や請求書など)からフィールドを抽出したりするエージェントの設定方法を学び、抽出されたデータがチャットでユーザーにどのように表示されるかをテストします。
ワークフローは、取り込まれた文書の種類を識別するために文書分類器を設定することから始まります。 分類結果に基づき、文書からデータが抽出される。 抽出されたフィールドがユーザーに表示された後、ワークフローは終了します。
文書処理用エージェントの作成
あらかじめ設定されたテンプレートを使用するのではなく、一から新しいエージェントを作成することから始めましょう。
エージェントを作成するには:
メニューから
IBM Cloud 環境では、ワークスペース一覧からワークスペースを選択するか、エージェント用のワークスペースを作成してください。「 ビルド」 を選択します。
すべてのエージェントを選択し、 「エージェントを作成」 をクリックします。
新規作成を選択してください。
エージェントに意味のある名前(例: Demo_Document_Processing) を入力してください。
エージェントの説明を入力してください。例: このエージェントは文書を分類し、文書からデータを抽出します。 エージェント向けの効果的な説明文の書き方を知るには、「 効果的な説明文とは?」 をクリックしてください オプション。
「作成」 をクリックします。
新しいエージェントの設定とテストを行うページが表示されます。

画面は主に3つの領域に分かれています:
ナビゲーションパネル:エージェントビルダーの「 プロフィール 」「 ナレッジ 」などのセクション間を移動します。
設定パネル:エージェントの機能を設定および構成します。
プレビューパネル:エージェントをテストし、設定を調整してユーザーエクスペリエンスを向上させます。
エージェントの作成に関する詳細については、を参照してください エージェントの構築。
エージェントに文書処理ツールを追加する
ナビゲーションパネルでは、エージェントにツールを追加できます。 ゼロから主体的なワークフローを構築し、そのワークフローに文書処理ツールを追加します。
エージェントにワークフローを追加するには:
ナビゲーションパネルで、 ツールセットをクリックします。
設定パネルで 「ツールを追加」 をクリックしてください。
エージェントワークフロー を選択してください。
ワークフローに意味のある名前を入力してください。 ワークフローを 「文書処理デモ」 と命名します。
「構築を開始」 をクリックしてください。 ワークフローページは開始ノードと終了ノードと共に表示されます。
では、新しいワークフローの説明を追加し、ワークフローの入力と出力を指定しましょう。
入力と出力の命名と定義
説明は各ツールの機能と使用方法を説明しますが、ツールの動作には影響しません。 AIエージェントがユーザーを支援する適切なツールを効果的に選択できるよう、説明文を作成する際には以下のガイドラインに従ってください:
ツールの機能と、それがサポートする具体的なタスクを明記してください。 その機能と制限事項を明確に述べる。
ツールの使用タイミングを説明してください。 関連するキーワード、ユーザーの操作、またはリクエストの種類を含める。
このツールが起動する状況やユーザーのリクエストを説明してください。 ツールが関連性を持つタイミングを示す意図やキーワードに焦点を当てる。 エージェントがツールを呼び出す適切なタイミングを判断するのに役立ちます。
このツールが他のツールやエージェントと連携する場合、それらの相互作用方法と併用すべきタイミングを説明してください。
入力と出力は、データがワークフローに入力され、出力される方法を定義するため、主体的なワークフローにおいて不可欠である。 それらはワークフロー全体に適用されます。 入力はワークフローに必要な開始情報を提供するか、ワークフローがコンテキストを持って開始できるようにします。 出力は、ワークフロー完了後に最終結果または構造化データを提供します。 それらは意味のある結果を返すことで、ワークフローを有用なものにしている。
例としてDemo_Document_Processingエージェントでは、説明と出力パラメータを追加します。
説明と出力パラメータを追加するには:
ワークフローページで、 [詳細を編集] をクリックします。
このワークフローの例については、説明として「 このワークフローは文書を分類し、値を抽出します。」と入力してください。
このワークフローの出力パラメータを指定するには、 [パラメータ] タブをクリックします。 入力パラメータを指定する必要はありません。ドキュメントはユーザーがチャット中にワークフローへアップロードするためです。
「出力の追加」 をクリックし、 文字列を選択します。
名前フィールドには class_name と入力し、 説明には「 このパラメータはドキュメントの分類結果を提供します 」と入力してください。
追加 をクリックします。
「完了」をクリックします。
ツールの説明を追加し、出力パラメータも追加しました。
では、取り込み用のドキュメントを収集するには、ワークフローにユーザーアクティビティノードを追加するか、後で作成するドキュメント分類ノードがユーザーにファイルアップロードを促すようにします。
ドキュメントを収集するためのユーザーアクティビティを追加する(任意)
ワークフローにユーザーアクティビティノードを追加するには:
開始ノードと終了ノードを結ぶ接続線の上にマウスを置きます。
「フローアイテムの追加
」アイコンをクリックし、 「フローノード 」>「 ユーザーアクティビティ 」を選択します。
ユーザーにファイルをアップロードしてもらいたいので、ユーザーアクティビティにファイルアップロードのインタラクションタイプを追加しましょう。
ユーザーアクティビティノードで、 [追加] をクリックし、 [ユーザーから収集 ] > [ ファイルアップロード ]を選択します。
ファイルアップロード操作を含むユーザーアクティビティノードがワークフローに追加されます。

ユーザーが文書をアップロードした後の次のステップは、その文書を分類することです。
アップロードされた文書の分類
アップロードされた文書を分類するため、ワークフローに文書分類ノードを追加しましょう。 文書分類器は文書の種類を自動的に識別できる。 請求書や契約書などの文書クラスを定義でき、分類器はそれらのクラスに基づいて文書を分類するためにAIを活用します。
ワークフローに文書分類器を追加するには:
ユーザーアクティビティとエンドノード間の接続線にマウスを合わせてください。
「フローアイテム
を追加」アイコンをクリックし、 「フローノード 」>「 ドキュメント分類器 」を選択します。ドキュメント分類ノードをクリックし、 [クラスを追加 ]をクリックします。このサンプルワークフロー用に、 契約書と請求書の2つのドキュメントクラスを追加します。
指定されたクラスを持つ文書分類器がワークフローに追加されます。

それでは、この文書分類ノードをテストして、期待通りに文書を分類できることを確認しましょう。
この文書分類器をテストするには:
ワークフロー内でドキュメント分類器を選択してください。
テスト用分類器を選択し、契約書と請求書をアップロードしてください。
この例示ワークフローでは、簡易契約書と請求書を使用しています。 同様に、契約書や請求書などの書類をアップロードして分類器をテストできます。
書類のアップロードには少し時間がかかるかもしれません。 書類の処理が完了すると、各書類の予測分類を確認できます。 定義されたクラスに一致しない文書は「 その他 」に分類される。
文書が処理された後、文書分類器は文書タイプを契約書または請求書として予測する。

予測結果を取得したら、文書分類ダイアログで 「完了」 をクリックしてください。
ドキュメント分類機能の詳細については、 「ドキュメント分類機能の追加」 を参照してください。
このサンプルワークフローでは、ユーザーがアップロードした文書を分類できるようになりました。 では次に、ドキュメントの種類を確認するための分岐をワークフローに追加します。
ドキュメントの種類を確認するための分岐を追加する
ブランチは、条件に基づいてワークフローでどの経路を取るかを決定できます。 この例示ワークフローではブランチを使用し、二つの経路を取ります:一つは契約書からデータを抽出する経路、もう一つは請求書からデータを抽出する経路です。
ワークフローにブランチを追加するには:
ドキュメント分類器と末端ノード間の接続線にマウスを合わせてください。
「フローアイテム
を追加」アイコンをクリックし、 「フローノード 」>「 分岐」 を選択します。ブランチをクリックしてパス条件を定義します。 パス条件は、条件ビルダーまたは式エディターを使用して定義できます。 ブランチを作成する際、デフォルトで2つのパスが生成されますが、追加のパスを追加することもできます。
パス条件を設定するには、この例では条件ビルダーを使用します。
パス1 の場合、 条件の編集をクリックしてください。
「+
」アイコンをクリックし、「 Document classifier 」ノードを選択してから、出力を選択 class_nameします。演算
==子を選択し、値として契約を入力してください。
値 class_name が「 契約」 の場合、ワークフローは経路1 に従います。 Path 1 の条件のみを定義すれば十分です。なぜなら、値 class_name が Contract でない場合、ワークフローはデフォルトで Path 2 を辿るからです。

さて、このサンプルワークフローはドキュメントを処理し、その出力タイプを確認できます。 次に、契約書と請求書の詳細を抽出するために、ドキュメント抽出ツールをワークフローに追加できます。
データ抽出を行うためのドキュメント抽出機能を追加する
文書抽出ツールは、文書から日付、名前などのフィールドやエンティティを抽出できます。
契約データを抽出するために、 パス1 にドキュメント抽出ツールを追加するには:
分岐ノードと終端ノード間のパス1 の接続線にマウスを合わせてください。
「フローアイテム
を追加」アイコンをクリックし、 「フローノード 」>「 ドキュメント抽出 」を選択します。非構造化を選択してください。
「フィールドの編集」アイコン
をクリックし、名前を「 Contract extractor 」に変更してください。モデルリスト内のモデル watsonx/meta-llama/llama-3-2-11b-vision-instruct を使用してください。 ただし、モデルはいつでも変更でき、データ抽出に最も適したモデルを選択できます。
契約書のサンプルをアップロードしてください。
アップロードされたサンプル文書は、抽出するフィールドの作成に役立ちます。 このドキュメントはモデルを訓練するものではなく、また設定中のエージェントの一部でもありません。
文書のアップロードには少し時間がかかるかもしれません。 アップロードが完了すると、ドキュメントのプレビューが表示されます。
「フィールドを追加」 をクリックし、文書から抽出する情報(購入者、供給者、日付など)のフィールドを追加します。

前の例では、個人、有効日、供給者、購入者のフィールドが追加され、これらは検索され、文書プレビューパネルに表示されます。
フィールドの詳細を編集するには、フィールドにカーソルを合わせ、[フィールドの詳細を表示] アイコン
をクリックします。 フィールド名、説明、データ型を編集できます。 モデルが抽出したい情報を理解できるよう、その分野の例を追加できます。
同様に、請求書データを抽出するためにパス2にドキュメント抽出ツールを追加します:
分岐ノードと終端ノード間のパス2 の接続線にマウスを合わせてください。
「フローアイテム
を追加」アイコンをクリックし、 「フローノード 」>「 ドキュメント抽出 」を選択します。非構造化を選択してください。
「フィールドの編集」アイコン
をクリックし、名前を「 Invoice extractor 」に変更してください。モデルリスト内のモデル watsonx/meta-llama/llama-3-2-11b-vision-instruct を使用してください。 ただし、モデルはいつでも変更でき、データ抽出に最も適したモデルを選択できます。
サンプルの請求書文書をアップロードしてください。
「フィールドを追加」 をクリックし、文書から抽出する情報(購入者、供給者、日付など)のフィールドを追加します。

前の例では、住所、品目、数量などのフィールドが追加され、これらが検索され、ドキュメントプレビューパネルに表示されます。
アップロードされたドキュメントの管理方法、フィールドへの例の追加、その他のオプションなど、詳細については、 「ドキュメント抽出機能の追加」 を参照してください。
現在、ワークフローはアップロードされた文書から契約書と請求書のデータを抽出できます。 次に、ユーザーに結果を表示するためのユーザーアクティビティノードを追加します。 このステップでは、各ドキュメントタイプに対して定義した抽出フィールドに基づき、結果を表示することが可能となります。
抽出されたデータをユーザーに表示する
ワークフローに2つのユーザーアクティビティノードを追加します。 1つは抽出された契約データを表示するノード、もう1つは抽出された請求書データを表示するノード。
契約データを表示するためのユーザーアクティビティノードを追加するには:
契約抽出ノードと終端ノードの間の接続線にマウスを合わせてください。
「フローアイテムの追加
」アイコンをクリックし、 「フローノード 」>「 ユーザーアクティビティ 」を選択します。ユーザーアクティビティノードで、 [追加] をクリックし、 [ユーザーへの表示] > [メッセージ] を選択します。
メッセージインタラクションを持つユーザーアクティビティノードがワークフローに追加される。 メッセージインタラクションの名前を「 契約詳細を表示 」に変更してください。
メッセージノードをクリックし、契約抽出ノードから変数を追加して抽出されたデータを表示します。

請求書データを表示するためのユーザーアクティビティノードを追加するには:
請求書抽出ノードと終了ノードの間の接続線にマウスを合わせてください。
「フロー項目
を追加」アイコンをクリックし、 「フローノード 」>「 ユーザーアクティビティ 」を選択します。ユーザーアクティビティノードで、 [追加] をクリックし、 [ユーザーへの表示] > [メッセージ] を選択します。
メッセージインタラクションを持つユーザーアクティビティノードがワークフローに追加される。 メッセージインタラクションの名前を「 請求書詳細を表示 」に変更してください。
メッセージノードをクリックし、請求書抽出ノードから変数を追加して、抽出されたデータを表示します。

ワークフローがユーザーに出力を表示できるようになったため、終了ノードを更新することでフローを完了させることができます。
エンドノードの定義
トピックの冒頭で定義した class_name 出力パラメータを使用するよう、末端ノードを更新します。
末端ノードを更新するには:
末端ノードをクリックし、 「データマッピングの編集」 を選択します。
class_name パラメータには、自動マッピングが既に適用されていることが確認できます。 この場合、ワークフローの開始時に定義した出力パラメータは1つだけであるため、自動マッピングは問題なく機能します。 より複雑なワークフロー(例: class_name パラメータが2つある場合)では、明示的な変数マッピングを使用して処理できます。
たとえば、自動マッピングを使用せずに class_name パラメータを明示的にマッピングしたい場合は、変数アイコン をクリックし、ドキュメント分類ノードから
class_name パラメータを選択します。
このトピックの手順に従った場合、ワークフローは以下の画像と似たようなものになります:

「完了」をクリックして変更内容を保存します。 新しいエージェントの設定とテストを行うページが表示されます。
エージェントに動作を追加する
正しいエージェントを起動するには、新規エージェントの 「動作 」セクション内で指示を定義する必要があります。
新しいエージェントに動作を追加するには:
ページのナビゲーションパネルで、 [動作] をクリックします。
新しいエージェントがリクエストにどのように、どこで反応し、ユーザーに対応すべきかを定義してください。 例えば、このエージェントでは、 Demo_Document_Processing ツールを呼び出し、結果を出力することができます。
さあ、新しいエージェントをテストしてみましょう。書類をアップロードしてください。
エージェントのテスト
テストのためにエージェントを起動するには:
プレビューパネルで 「Demo_Document_Processing」ツールを呼び出し、Enterキーを押します。
契約書をアップロードしてください。 請求書文書をアップロードしてテストを繰り返すこともできます。
ドキュメントをアップロードすると、エージェントがバックグラウンドで自動的にワークフローの手順を実行します。 指定されたフィールドに基づいて関連データを抽出し、抽出された情報を含む応答を生成します。 さらに、この文書がどの分類に属するかの洞察を提供します。
結果は以下の画像と似たようなものになるはずです:

このセクションでは、エージェントをゼロから構築し、文書分類を行うよう設定し、文書からフィールドを抽出し、エージェントをテストして、抽出されたデータがチャット内でユーザーにどのように表示されるかを確認する手順をまとめます。