LoginSignup
11
6

More than 1 year has passed since last update.

ChatGPT×UiPathでAPIを叩くワークフローを作成

Last updated at Posted at 2023-01-30

はじめに

ChatGPTがバズってる最近、UiPathのような自動化ツールとの連携でより便利に使える方法も増えて来てます。スプレッドシートとの連携や、VS Codeのアドオン機能としてさまざまな連携方法がある中、UiPath Studioではどのように連携するのか、具体的なワークフローの設定方法までをまとめてみたいと思います。

連携の概要

image.png

ChatGPTのAPIですが、現在はWaiting Listとして公開されていません。ですので直接的にAPIをStudioから叩くことは出来ないのですが、ChatGPTを提供しているOpen AIは似たような言語モデルを複数持っています。今回はChatGPTのエンジンと限りなく近い、text-davinci-003を利用することにします。ChatGPTのエンジンと今回のダビンチの違いは以下を参照ください。

今回の連携は、このOpen AIのCreate completionモデルのAPIをStudioから叩くまでをやってみたいと思います。

ワークフローの設定方法

ワークフロー自体は、以下のステップで今回は作成していきます。

Open AIにSign Upして、APIを取得

image.png
以下のリンクより、Sign Upをします。
https://openai.com/api/

サイトへログイン後、プロフィールアイコンからAPI管理を開き、秘密鍵を作成し、コピーします。一度閉じると二度と秘密鍵を確認できないので、コピーした鍵を上書きしないように気を付ける必要があります。
image.png

Studioにてダイアログ(質問のInput Form)を作成

image.png
image.png

今回はこのようなダイアログに質問を記載できるフォームを作成します。そこで取得した値は、Questionとして定義した変数に格納し、後述するパラメーターに追加します。

APIのパラメータ設定

image.png
JsonInputDataとして、APIを叩くのに必要なパラメータをこちらに記載しています。
APIの各種パラメータは以下を参照してください。

@"{
" + "\n" +
      @"""model"": ""text-davinci-003"",
" + "\n" +
      @"""prompt"": ""Q: "  + Question + @"?\nA:"",
" + "\n" +
      @"""temperature"": 0,
" + "\n" +
      @"""max_tokens"": 3000,
" + "\n" +
      @"""top_p"": 1,
" + "\n" +
      @"""frequency_penalty"": 0.0,
" + "\n" +
      @"""presence_penalty"": 0.0,
" + "\n" +
      @"""stop"" :""\n""
" + "\n" +
      @"}"

またHTTP Requestアクティビティはこのように記載しています。
AuthはBearer認証のため、Bearer {API_KEY}のように記載する必要があるのがポイントです。
image.png

レスポンスを加工して表示

image.png
最後に、レスポンスのJSONをデシリアライズして、返答部分のテキストを抽出します。
レスポンスはこのようになっており、JsonObjectOutput.SelectToken("$.choices.[0].text").ToString()という式で返答部分のみ抽出しています。

image.png

最後にメッセージボックスを表示させて、終了です。
image.png

おわりに

このように比較的簡単に、ChatGPT風の言語モデルを使い、APIを叩くことができるようになります。ループ処理を施すことで連続的にAPIを叩くようにしたり、UiPath Appsを用いてよりUIをリッチにすることも可能です。また例えば、社内用のワークフローとしてこちらを社員に提供し、投げられた質問を保存することで、社員がどのように利用しているのか、セキュリティ的な使い方は問題ないのか、などを分析する事も可能だと思います。今回は言語モデルで試してみましたが、次回は画像生成モデルなどを試してみたいと思います。

11
6
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
11
6