5
4

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.

Google Bard API (Vertex AI)をPower Automateから使用するためには

Posted at

はじめに

Power AutomateからChatGPTを利用する方法は、記事で目にしますが、
これからGoogle Bardの検証をしてみよう!と思いますので、
備忘録として 「Google Bard API(Vertex AI)」 を、Power Automate から実施する方法を残していきたいと思います。

2023.08.10時点の記事です。
カスタムコネクタは検索したところ、見当たらない・・・。
見落としがあったら申し訳ないです。

Cloud SDKが必要になります。

Google Bardについて

Google Bardは、Googleが提供する自然言語生成(NLG)プラットフォームです。自然言語を理解し、論理的な文章や回答を生成することができます。人工知能を使用してテキストを生成したり、FAQ文書を自動生成するなどの目的に使用できます。Google Bard APIを使用するには、Googleアカウントが必要です。

By Bing Chat

Google Cloud Platformでプロジェクトを作成する

<1> Google Cloud Platformの設定

1. Google Cloud Platformにアクセス

image.png

この画面で赤枠「ログイン」か「試用開始」で利用環境を用意してください。

課金の管理は自己責任で願いします。

2. プロジェクトを新しく作成する

image.png

①の部分をクリックして、「プロジェクトの選択」画面が出ます。

image.png

「新しいプロジェクト」から、必要情報を入力してプロジェクトを作成しましょう!
デプロイはすぐに完了します。

3. 「Vertex AI」を有効にする

  1. 「APIとサービス」のダッシュボードにアクセスします。
    image.png

  2. 次に 「+ APIとサービスの有効化」 をクリックしましょう。
    image.png

  3. APIライブラリ に移ります。ここで 「Vertex AI」 と入力し、クリックします。
    image.png

    • 「推奨 APIの有効化」 をします。
      image.png

設定が終わり次第、Vertex AIのページに転移します。

image.png

別の画面に立ち戻ってしまった場合は、
コマンドパレットから「Vertex AI」と入力し、クリックすると、
Vertex AIのページに移ることが出来ます。

image.png

4. Generative AI Studio > 言語 > 会話を開始をクリック

image.png

Vertex AIのページは宝石箱のように機能が山盛りです!
ここを探索するだけでもワクワクします!

image.png

このメニューがChatGPTのように使えるText CHATが実施できる画面になります。
Generative Studioは見どころ満載のページなので、後で探索したいところです👀✨

5. APIで利用するチャットのパラメーターを設定する

image.png

6. Power Automateに設定する値を取得する

プロンプトを試せるページに転移します。

image.png

  • コンテキストや例を最初に設定できることが特徴的です。
  • APIで対話するうえでもJSONの形式が異なることがここから想像できます。

モデルの詳細はこちらからどうぞ!

サクっとまずはAPIの検証がしたいので右上の 「コードを表示」 をクリックします。
image.png

CURLを選択します。

image.png

こちらで手順も紹介されています。

  1. Google Cloud SDKをインストールする
  2. コマンドを実行し、Google アカウントを使用して認証します。
  3. Enter the following to request a model response < これが実際に設定する値になります

コンテキストやパラメーターを調整したうえで、試したい場合は、あらかじめ画面で設定したうえで開くと良いです。
ここにCURLの値をボカしながら書きます。

API_ENDPOINT="MY API ENDPOINT"
PROJECT_ID="PROJECT ID"
MODEL_ID="chat-bison@001"

curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://${API_ENDPOINT}/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/${MODEL_ID}:predict" -d \
$'{
    "instances": [
        {
            "context": "",
            "examples": [],
            "messages": []
        }
    ],
    "parameters": {
        "temperature": 0.2,
        "maxOutputTokens": 256,
        "topP": 0.8,
        "topK": 40
    }
}'

設定値のPoint

この画面から、HTTP要求の設定値が判明します

項目
方法 POST
URI https://API_ENDPOINT/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predict

ヘッダー

Column1 Column2
Content-Type application/json
Authorization Bearer gcloud auth print-access-token

このgcloud auth print-access-tokenを取得するためには、
Cloud SDKのダウンロードが必要になります。

本文

messagesの部分のみ追記しましたが以下の通りです。

{
  "instances": [
    {
      "context": "",
      "examples": [],
      "messages": [
        {
          "author": "user",
          "content": "ここがプロンプトに該当します!"
        }
      ]
    }
  ],
  "parameters": {
    "temperature": 0.2,
    "maxOutputTokens": 256,
    "topP": 0.8,
    "topK": 40
  }
}

ChatGPTと比較するとJSONに格納されている値が多いことがポイントですね。

さて、ここから

  • Googleの認証
  • gcloud auth print-access-tokenを取得

この二つが必要なので見ていきましょう!

<2> Cloud SDK

1. Cloud SDKのダウンロード

細かい説明は省きます。
一緒にドキュメントを見ながら頑張りましょう!

まずはCloud SDKのダウンロードです。

image.png

インストーラーをダウンロードします。

image.png

インストール後に、下記の設定が必要になります。

  • Google ユーザー アカウントを使用してログイン認証
  • Google Cloud プロジェクトのリストからプロジェクトを選択

Google Cloud SDK Shellの操作

まずは下記のコマンドでGoogleアカウントの認証を実施します。

$ gcloud auth application-default login

実行すると認証画面に移るので、Googleアカウントを選択しましょう。

image.png

次に Google Cloud プロジェクトの選択 を求められます(初回のみ)
数が多くなければ選択式になります。
こちらにて、Bard API もとい Vertex AIのプロジェクトを設定します。

その後、下記のコマンドを実施しましょう。

$ gcloud auth print-access-token

こちらが、Power Automateに必要なgcloud auth print-access-tokenです。

役者が揃いました!

では、いよいよPower Automateにて使ってみましょう!

Power Automateで実装

早速フローへ

検証目的なのでインスタントフローで実施します。

image.png

1. 変数を初期化する プロンプトの設定

ユーザーの質問です。
image.png

2. 変数を初期化する API_ENDPOINT

Vertex AIのコード画面からそのまま転写しましょう。

image.png

3. 変数を初期化する PROJECT_ID

同上
image.png

4. 変数を初期化する MODEL ID

同上
image.png

5. 変数を初期化する gcloud auth print-access-token

上記と同じように変数にて、gcloud auth print-access-tokenを格納します。
言わずもがな絶対に漏らしてはいけない情報です。

6. HTTP

ここでAPIを実行するアクションが入ります。
image.png

ここで一回テストをしてみましょう!

戻り値のJSONは下記の様になりました!

{
  "predictions": [
    {
      "citationMetadata": [
        {
          "citations": []
        }
      ],
      "candidates": [
        {
          "author": "1",
          "content": "日本で二番目に大きい湖は、琵琶湖です。"
        }
      ],
      "safetyAttributes": [
        {
          "scores": [
            0.1
          ],
          "categories": [
            "Death, Harm & Tragedy"
          ],
          "blocked": false
        }
      ]
    }
  ],
  "metadata": {
    "tokenMetadata": {
      "inputTokenCount": {
        "totalTokens": 9,
        "totalBillableCharacters": 13
      },
      "outputTokenCount": {
        "totalTokens": 14,
        "totalBillableCharacters": 19
      }
    }
  }
}

思いっきり間違っていて苦笑いですが、戻り値の形式がわかりました。
使いやすいようにJSON の解析アクションを挟みましょう!

image.png

[サンプルから生成]にて、先ほどの戻り値からスキーマを設定します。
image.png

解析をすると、JSONの中身がほとんどArray 配列ですね・・・。

仮に一番最初の回答の部分だけもらう場合の数式は下記のとおりです。

body('JSON_の解析')?['predictions'][0]?['candidates'][0]?['content']

image.png

めちゃめちゃ間違っていますがPower Automateは上手くできました!

さてさて、AI時代のいろいろなモデルが出て来る事は面白いことこの上ないですね!

これでPower Platformで遊ぶ準備ができた・・・、フフフフフ。
ということでいろいろチャレンジしたいと思います。

よいPower Lifeを!See you next time♬
5
4
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
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?