19
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

すぐに始めるchatGPT API①まずはPower Automate で呼び出してみる

Last updated at Posted at 2023-03-29

最近はやっている Chat-GPT。とりあえずWebブラウザから質問を入力して遊んだり調べ物をしたりしている方が多いと思います。
もろもろありますが、以下のURLから飛ぶのが一番早いかな?
https://chat.openai.com/

せっかくなので、この機能をTeamsやPower Platformに組み込んでみたいと思いませんか?
ここでは、市民開発者向けに、なるべく簡単に利用開始する方法をご案内してみます。

OpenAI API にサインアップしてKeyを入手する

ChatGPT のAPI を利用するためには、OpenAI(ChatGPTを作っているところ)にサインアップ(ざっくりいうとアカウントを作ること)して、API Key (ざっくりいうと、APIにリクエストして情報をやり取りするための認証情報)を取得することが必要になります。
※以下の手順、画面は2023/3/29時点での内容です。また、マイクロソフトおよび私のほうでは詳細な支援はできませんので参考情報として掲載させていただきます。特にクレジットカード情報の入力などは利用規約などを読み納得したうえで進めてください。

①まずは https://www.openai.com を開きます。
手順1openaiドットコムを開く.jpg

②Developer Overviewを開きます(Sign up ボタンが出ればどこでもいいのですが、とりあえず)
手順2DeveloperOverViewを開く.jpg

③[Sign Up]をクリックします。
手順3SignUpをクリック.jpg

④Microsoft Accountをクリックして、認証情報を入力します。
手順4MSAをクリック、必要に応じて認証情報を入れる.jpg

⑤画面が戻り、サインアップ&サインインが完了します。
手順5画面が戻る.jpg

⑥右上をクリックし[View API Key]をクリックします。
手順6右上をクリックしてView APIKeyをクリックする.jpg

⑦[Create New Secret Key]をクリックします。
手順7CreateNewSecretKeyをクリックする.jpg

⑧生成されたKeyをコピーしてメモ帳などに控えます。このキーは絶っっっ対他人には教えないでください。
手順8生成されたKeyをコピーしてメモ帳などに控える.jpg

⑨Billingをクリックし、Set up paid account をクリックしてクレジットカード情報を入力します。本来、フリートライアル分が$18ぐらいあるみたいなのですが、今はカード情報なしで実行すると429(スロットリング)が発生するみたいです。
手順9必要に応じて課金情報クレジット情報を入力します.フリートライアルで少し利用できるはずですが、これを入力しないと利用できないという報告もありました..jpg

⑩そうすると課金が怖くなりますので、Usage Limitでリミットを制限しておきます。$20に設定しておけば20ドルを超えた時点で呼び出せなくなりそれ以上課金されることは防止できます。
手順10UsageLimitを設定しておけば、使い過ぎて膨大な請求が来ることを阻止できます..jpg

これでOpenAI側の作業は完了です。手順としては単純ですが、お金も絡んできますので利用規約などはよく読んでから利用してください。

Power Automate で単純に呼び出す

何回かに分けていろいろな呼び出し方を試す予定ですが、まずは一番簡単に呼び出す方法を考えてみます。

①Power Automateのホーム画面を起動し、[作成]-[インスタントクラウドフロー]を選択します。
image.png

②フロー名を任意に入力、「手動でフローをトリガーします」を選択して「作成」をクリックします。
image.png
※トリガーは後から変えられますので、ここではすぐに試せるボタントリガーを選んでいます。

③新しいステップをクリックし、検索テキストに「変数」と入力し「変数を初期化する」をクリックします
image.png

④名前を[API Key]、種類を[文字列]に設定し、値を先ほど入手したAPI Key(sk-から始まる文字列)を入力します。
image.png

⑤同様に「質問」「回答」の変数(文字列)を作成します。値は空白のままで構いません。
image.png

⑥[新しいステップ]をクリックし、検索テキストに[HTTP]と入力します。プレミアムをクリックして、HTTPアイコンをクリックします。
image.png

⑦HTTPをクリックします。
image.png

⑧以下の内容を埋めていくことになりますので、順番に説明します。
image.png

方法:HTTPのメソッドのことです。ここでは本文がありますので「POST」を選びます。
URI: OpenAI chat API がある「https://api.openai.com/v1/chat/completions」を指定します。
ヘッダー:以下の二つを入力します。

Content-Type application/json
Authorization Bearer [API Key]

API Keyは以下のようにBearerと書いてスペースを入力した後、左下のリストから変数を選んで入力します。
image.png

image.png

クエリ: 特に入力しません
本文以下のように入力します。

本文
{
  "model": "gpt-3.5-turbo",
  "messages": [
    {
      "role": "user",
      "content": "@{variables('質問')}"
    }
  ]
}

質問の部分は上記のAPIkey と同様の方法で入力できます。
ここまで完了したら、一回テスト実行してみます。「質問」に任意の質問内容を入力しておきます。

image.png

⑨右上の[テスト]をクリックして、
image.png
手動を選択してテストをクリックします。「フローの実行」→「完了」をクリックします。
image.png

⑩成功すると以下のようになります。
image.png

HTTPアクションを開いて、出力にあるJSONデータをメモ帳にコピーしましょう。
image.png

出力をPower Automateで利用する

出力されたJSONデータは以下のようになります。

出力
{
  "id": "chatcmpl-******",
  "object": "chat.completion",
  "created": 16000000,
  "model": "gpt-3.5-turbo-0301",
  "usage": {
    "prompt_tokens": 24,
    "completion_tokens": 67,
    "total_tokens": 91
  },
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "世界で三番目に高い山の名前は、カンチェンジュンガ(Kangchenjunga)です。海抜8,586mの高さを持ち、ネパールとインドの国境付近に位置しています。"
      },
      "finish_reason": "stop",
      "index": 0
    }
  ]
}

JSONデータを解析すればAutomateから容易に呼び出せるようになります。
①「新しいステップ」をクリックして、検索テキストにJSONと入力して「組み込み」タブをクリックし、「JSONの解析」をクリックします。
image.png
②コンテンツの入力エリアをクリックして右下に表示される「HTTP - 本文」をクリックします。
image.png
③[サンプルから生成]をクリックします。サンプルJSONペイロードの挿入に、先ほどコピーした出力のJSONデータをペーストします。完了をクリックします。
image.png

すると以下のように、スキーマ(JSONの構造を定義したもの)が自動的に作成されます。
image.png

④最後に、応答として得られた中から「回答」の部分を抽出したいと思います。JSONデータを見てみると、応答に含まれるchoices->messages->content の中身が回答とわかります。このデータを取ってみましょう。
検索テキストに「変数」と入力して「変数の設定」を選択します。
image.png
名前を「回答」に変更し、値として「JSONの解析->content」を選びます。
image.png
すると以下のようにApply_to_eachが自動的に追加されます。
image.png
これはchoicesが複数のmessagesを持つアレイであるからです。今回の利用法であればmessagesに含まれる要素は1つだけになると思いますので、今回はこのままでOKです。

質問の内容を変えてもう一回実行します。回答の変数に正しい値が入っていれば成功です。

質問
image.png
回答
image.png

まとめ

単純に chatGPTのAPIを呼び出すだけであれば、1回のHTTPリクエストで完了します。
次回以降は、より扱いやすくするためにPower Appsでの実装や、 Microsoft Teams ボットでの利用を検討してみます。

19
17
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
19
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?