ChatGPTとRPAの関係性

## はじめに
昨今、ChatGPTに関する様々なニュースが毎日のように飛びこんできますね。

ChatGPTの連携プラグイン公開や、LangChain, LlamaIndex, HuggingGPTなどの様々なライブラリの使い方、オープンソースモデルの公開など、もはや数ヶ月の情報はちょっと古いなというレベルで情報がアップデートされています。

ライブラリやAPIなどを実際に叩いてサービスやアプリケーションを開発している人、日々の業務のサポートとして活用し始めている人、1度だけ触ってみた事はあるという人、よく聞くけど実際にまだ触ってみたことはないという人など、理解度や活用状況は様々ですが、誰もが少なからず興味を持っている状況である事は間違いないと思います。

こうした中、自動化推進をやっていると必ず聞かれるのが「**ChatGPTとRPAはどういう関係なの？**」という事です。

場合によっては「ChatGPTがあればRPAはいらなくなるの？」という事も素朴な疑問として聞かれることがあります。

なんとなくどちらも業務の効率化・自動化に活用できるツールというイメージはあるものの、いまひとつこの2つの違いや棲み分けについてイメージがついておらず、もやもやとされている方が多いのではないかと思います。

今回は、最近あまりにもよく聞かれる「ChatGPTとRPAはどういう関係なのか？」という事について、書いていきたいと思います。

## ChatGPTとRPAはどういう関係なのか

さて、では「ChatGPTとRPAはどういう関係なのか？」「ChatGPTがあればRPAはいらないのか？」という事に関してですが、結論から言ってしまうと、「**ChatGPTとRPAをどちらも使いこなす事で、自動化可能な範囲がめちゃくちゃ広がる**」という事になります。

なぜ2つを使いこなす事で自動化可能な範囲が広がるのかと言うと、そもそもこの2つは相互補完関係にあるためです。

ChatGPTが担うのはいわゆる非定形な業務領域であり、人間で言えば「脳」の領域に当たります。様々なプラグインやAPI連携で処理範囲を拡張できますが、ChatGPTから直接届くのは、あくまでAPIが整備されている範囲までです。

「ChatGPTで業務を効率化したい！」と、APIを備えていない社内システムの前にChatGPTを持っていった所で、ChatGPTには何もできません。

なぜなら、どれだけ優れた脳であろうと、情報が脳までインプットされなければ何もアウトプットは出せないためです。

ここで必要になるのがRPAで、RPAは人間で言えば「手足」に当たります。人間がPC上で行う定型的な操作は基本的には全てRPAで再現可能なため、APIがないシステムもRPAは人間と同じように操作する事ができます。

つまりRPAは、APIがないシステムも含め、ChatGPTに必要となる情報を抽出し、またChatGPTの結果や指示に基づいて、システムを自動で操作する事ができます。

APIがないシステムの前にChatGPTだけを持っていっても何もできませんが、ChatGPTとRPAを両方持っていくと、システムからの情報抽出と非定形な処理の実行、システムへの更新情報の反映までを自動化する事ができます。

RPAの視点から見ても、自分の苦手領域を補完してくれるChatGPTの登場は有難く、非定形な業務領域も含めた自動化の守備範囲がChatGPTにより広がる事で、ビジネスプロセスにおいてRPAを含めた自動化を検討する範囲が増える事になります。

より具体的に言うと、これまでは人の判断や例外的な処理が多かったため、一部分だけRPAに担わせるよりそのまま人でやった方が良いという領域が、ChatGPTでここまでできるなら、前後作業も含めRPAで自動化したいという事になるという事です。

つまり、自動化推進におけるChatGPTの登場をどう捉えれば良いかというと、「AIが担える領域が大きく広がった(脳が強くなった)事で、ChatGPTとRPAの連携で自動化できる範囲が広がる」という事です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/2cf3096f-6e8a-75b5-5e70-45e5686bdd4e.png)

以下はChatGPTとRPAが担う自動化領域のマトリックスのイメージです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/b869fe5f-9636-d82d-2cd4-4800eb4ccd20.png)

ChatGPT単体で自動化できるのは非定形・定型含め、あくまで右半分のAPIで処理できる範囲までです。一方、RPAはAPIの有無には依存しませんが、単体で自動化できるのは、下半分の定型業務までです。

つまりどちらか一方で埋められるマスは2つまでですが、両方を上手く活用する事で、右上と左下の領域を上手く補完しながら、左上の領域も自動化の守備範囲に入る事になります。

## ChatGPTとRPAの連携方式

ChatGPTとRPAの連携方式については、大きく以下の3つで考えると良いと思います。

①既存のRPAでの自動化プロセスから、非定形処理に関して部分的にChatGPTを呼び出す
②ChatGPTで自動化する業務におけるシステム操作にRPAを使う
③ChatGPTのコンテキスト情報をRPAが各システムから供給する

①はこれまでRPA推進をやっていた方達に最もイメージしやすいケースかと思います。つまり、RPAでの定型的な業務の中での一部非定形な処理にChatGPTを活用するという形です。

いわゆる特化型AIと組み合わせて自動化を検討してきた領域になりますが、つどつど特化型AIを学習・メンテしてきたところが、ChatGPTを活用することで、プロンプトの工夫やサンプル提示(Few-shot learning)である程度柔軟に対応できるようになります。

特にカテゴリ分類系などは、これまではカテゴリの変更に応じてモデルの再学習が必要でしたが、GPTモデルの場合、指定カテゴリのプロンプト上での変更、提示サンプルの変更である程度吸収できるようになるでしょう。

②はAIベースの考え方で、ChatGPTに必要な情報をRPAが供給、またはChatGPTの指示に基づいて、RPAがシステムを操作するという形です。

ChatGPTがコントローラーとしてRPAを必要に応じて活用するという形で、ChatGPTを軸に自動化を考えつつも、APIのないシステムが出てくるタイミングで必然的にこの形になると思います。

③はChatGPTとRPAが直接連携しているという形ではなく、ChatGPTが参照する独自のコンテキスト情報(社内情報など)をRPAが供給するという形です。

実際に社内でChatGPTを利用する場合、Azure OpenAI Service等を利用する事になると思いますが、社内問合せの自動化等においては、社内情報をどれだけChatGPTが参照可能なようにインデックス化できるかがポイントになります。

Azureから直接手が届くところにデータがある場合は良いですが、そうではないケースでは、RPAが各システムからデータを抜き、ChatGPTがインデックスとして参照できるようにデータを供給する形になります。

これはいわゆるRPAというより、ETLに近い用途になります。データ量や対向システム、ユースケースに応じて、ETLツールでやるのかRPAを使うのかを検討する事になります。APIがあるのであれば、iPaaSも選択肢に入るでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/edd057be-9388-bb96-bf8e-04077bce5a55.png)

## AutomationCoEにおけるChatGPTの活用
最後に、少し趣向は変わりますが、ChatGPTの活用は自動化推進(AutomationCoE)の運営においても有効であると言えます。

以下はちょっとしたユースケースですが、問合せ対応の自動化や開発支援、品質管理、業務可視化・選定など、様々な領域での活用が可能になると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/9b6fdb96-162b-49ee-74ea-a3c9b397d483.png)
この辺りはアイディア次第なので、現場をよく知っている方からは、今後様々なユースケースが出てくるのではないでしょうか？

個人的には、それ自体に付加価値はないものの、自動化のための業務のAsIs把握が推進側・ユーザー双方に最もしんどい所なので、この辺りに上手く活用し、自動化のToBe設計・改善に向けたディスカッションに時間を割けるようにしたいなと思っています。

## 全てAPIで処理すべきという話

ここで1つ注意点として、RPAに関して時々出るのが、「RPAのGUI操作は安定しないので、RPAは使わずに全てAPIで処理すべきだ」という意見です。

これ自体は全く間違いではないのですが、こういった意見を言う人の多くは、実際の現場のシステムを見た事がない人になります。

一定の規模以上の企業、特に大手企業においては、業務システムを棚卸していくと、APIで処理できる範囲は半分にも満たず、多くの場合はAPIを使えるシステムから数えていった方が早いという状態でしょう。

長期的にAPIファーストな環境を目指すべきであるのは間違いないのですが、最新のSaaS系システムにおいても、やはりAPIよりGUIを使うユーザーが圧倒的に多いため、APIは基本的には後から整備される事になります。

また、APIがあると言ってもゼロイチの議論ではなく、最低限の処理しかAPIで提供されていないケースもあります。

私もエンジニア観点としては全てAPIで処理したい所なのですが、いつまでも達成できないToBeだけを言っていても仕方がないので、CanBeで改善しながらToBeを目指していく(RPAを使って目下自動化を進めながら、APIファーストを徐々に目指していく)という形が現実的かと思います。

ここは中途半端にこだわると、むしろChatGPTで自動化できる範囲が単純に小さくなったしまうため、APIがないシステムもRPAで自動化できるという強みを活かしながら、ChatGPTと上手く連携させて自動化領域を拡張させていくという進め方が良いかと思います。

## さいごに

いかがだったでしょうか？

改めてまとめですが、ChatGPTとRPAに関しては、2項対立的な話ではなく、両方使いこなす事で自動化可能な範囲が大きく広がるという事になります。また、AutomationCoEの運営においてもChatGPTの活用は有効な手段となり得ます。

自動化を推進されている方達から、「上位層からChatGPTとRPAは何が違うんだ？ChatGPTがあればRPAはいらないのか？と聞かれ困っている」という話をよく聞いていたので、ChatGPTとRPAの関係性とその活用について少しでも参考になれば幸いです。

そもそも自動化推進は、RPAツールを使いこなすという話ではなく、デジタルレイバー(仮想労働者)のレベルを上げていくという話なので、ChatGPTが出てきた事で、RPAでの定型業務がメインだったデジタルレイバーの脳が強化され、できる事が大きく増えると捉えるのが良いのではないかと思います。