はじめに
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にアクセス
この画面で赤枠「ログイン」か「試用開始」で利用環境を用意してください。
課金の管理は自己責任で願いします。
2. プロジェクトを新しく作成する
①の部分をクリックして、「プロジェクトの選択」画面が出ます。
「新しいプロジェクト」から、必要情報を入力してプロジェクトを作成しましょう!
デプロイはすぐに完了します。
3. 「Vertex AI」を有効にする
設定が終わり次第、Vertex AIのページに転移します。
別の画面に立ち戻ってしまった場合は、
コマンドパレットから「Vertex AI」と入力し、クリックすると、
Vertex AIのページに移ることが出来ます。
4. Generative AI Studio > 言語 > 会話を開始をクリック
Vertex AIのページは宝石箱のように機能が山盛りです!
ここを探索するだけでもワクワクします!
このメニューがChatGPTのように使えるText CHATが実施できる画面になります。
Generative Studioは見どころ満載のページなので、後で探索したいところです👀✨
5. APIで利用するチャットのパラメーターを設定する
6. Power Automateに設定する値を取得する
プロンプトを試せるページに転移します。
- コンテキストや例を最初に設定できることが特徴的です。
- APIで対話するうえでもJSONの形式が異なることがここから想像できます。
モデルの詳細はこちらからどうぞ!
サクっとまずはAPIの検証がしたいので右上の 「コードを表示」 をクリックします。
CURLを選択します。
こちらで手順も紹介されています。
- Google Cloud SDKをインストールする
- コマンドを実行し、Google アカウントを使用して認証します。
- 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のダウンロードです。
インストーラーをダウンロードします。
インストール後に、下記の設定が必要になります。
- Google ユーザー アカウントを使用してログイン認証
- Google Cloud プロジェクトのリストからプロジェクトを選択
Google Cloud SDK Shellの操作
まずは下記のコマンドでGoogleアカウントの認証を実施します。
$ gcloud auth application-default login
実行すると認証画面に移るので、Googleアカウントを選択しましょう。
次に Google Cloud プロジェクトの選択 を求められます(初回のみ)
数が多くなければ選択式になります。
こちらにて、Bard API もとい Vertex AIのプロジェクトを設定します。
その後、下記のコマンドを実施しましょう。
$ gcloud auth print-access-token
こちらが、Power Automateに必要なgcloud auth print-access-token
です。
役者が揃いました!
では、いよいよPower Automateにて使ってみましょう!
Power Automateで実装
早速フローへ
検証目的なのでインスタントフロー
で実施します。
1. 変数を初期化する プロンプトの設定
2. 変数を初期化する API_ENDPOINT
Vertex AIのコード画面からそのまま転写しましょう。
3. 変数を初期化する PROJECT_ID
4. 変数を初期化する MODEL ID
5. 変数を初期化する gcloud auth print-access-token
上記と同じように変数にて、gcloud auth print-access-token
を格納します。
言わずもがな絶対に漏らしてはいけない情報です。
6. HTTP
ここで一回テストをしてみましょう!
戻り値の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 の解析
アクションを挟みましょう!
[サンプルから生成]にて、先ほどの戻り値からスキーマを設定します。
解析をすると、JSONの中身がほとんどArray 配列
ですね・・・。
仮に一番最初の回答の部分だけもらう場合の数式は下記のとおりです。
body('JSON_の解析')?['predictions'][0]?['candidates'][0]?['content']
めちゃめちゃ間違っていますがPower Automateは上手くできました!
さてさて、AI時代のいろいろなモデルが出て来る事は面白いことこの上ないですね!
これでPower Platformで遊ぶ準備ができた・・・、フフフフフ。
ということでいろいろチャレンジしたいと思います。