ファンリピート社のブログFR note

プラグインでChatGPTとbubbleを連携してみる

プラグインでChatGPTとbubbleを連携してみる

bubbleのプラグイン「API Connector」を使ってbubbleとGPTを連携し、bubble側から文章の送信と生成文を見られるようにしてみます。

記事で説明するbubbleでChatGPTを呼び出すアプリの完成画面
図1.アプリ完成図

このように、inputにGPTに送りたいメッセージを入力し、送信ボタンを押すと左側に送った文章、左側に回答が表示されるアプリを作ります。

目次
「システムを短納期かつ低予算で作成したい」
ローコード開発に興味がある

bubbleにプラグインをインストール

新しくアプリを作ったら、左側のサイドメニューから「Plugins」を選択し、「Add plugins」をクリックしてください。

おそらく、検索しなくとも「API Connector」は表示されると思いますので選択してインストールします。画像では既にインストール済みとなっています。

PluginメニューからAPI Connectorを選択する画面
図2. API Connectorを選択

インストールが完了したらもう一度サイドバーの「Plugins」をクリックしてください。インストール済みのプラグイン一覧が表示されるので、選択し設定に移っていきます。

API Connectorの詳細画面
図3. API Connectorの詳細画面

Open AIのAPIキーを取得

ここで、OpenAIのAPIの取得が必要となるので、Open AIに登録かログインが必要になります。

API呼び出し回数に応じて料金が請求されることがあるので、使いすぎには注意が必要です。5$分までは無料で使えるようですが、お金をかけたくない場合は、今後業務などで使用しない限り無駄にbubbleからGPTにアクセスしないようにしましょう。

あわせて読みたい

登録、ログインが済んだら、左側サイドメニューの鍵アイコン「API keys」を選択します。

APIキーが生成できるページに飛ぶので、「Create new secret key」をクリックしてください。

何も入力せず、「Create secret key」をクリックすると、自動的に生成されます。一度しか全文確認できないので、生成後に必ずコピーし、メモしておきましょう。

Open AIの設定からAPI keyを生成する画面
図4. API keyの生成

Pluginの設定

さて、APIがコピーできたら、先ほど開いたbubbleのplugin設定ページに戻ります。

APIキーを入力しOpen AIとbubbleを連携させる設定画面
図5. Open AIと連携させる

設定画面の上側にはこちらの画像のように入力してください。

API Nameは何にしても問題ないのですが、分かりやすい名前にするのをおすすめします。

API Name:「任意の名前を入力」| Authentication: 「Private key in header」(をプルダウンより選択)

Key name: Authorization | Key value: Bearer (半角スペース)コピーしたAPIキー

Development key value:未選択

Key: Authorization | Value:Bearer (半角スペース)コピーしたAPIキー

Key: Content-Type | Value:application/json

後半はこのように設定します。

APIキーを入力しOpen AIとbubbleを連携させる設定画面の後半部分
図6. 後半の設定

Nameの部分はワークフローのアクション名になります。

Useas:[Action]、Data type[json]

[POST]https://api.openai.com/v1/chat/completions 

Body type: json

Body (JSON object, use <> for dynamic values):

{

    “model”: “gpt-3.5-turbo”,

    “messages”: [{“role”: “user”, “content”: “<message contents>”}]

  }

message contents Privateのチェックを外す

入力し終わったら、画面下のReinitialize callをクリックし、次の画像が表示されれば成功です。

GPTの呼び出しに成功すると表示される画面
図7. GPTの呼び出しに成功

アプリの作成

エレメント配置とワークフローの構築に入ります。

回答を表示するだけなので、自由に作って問題ありません。一例として参考にしていただければと思います。

こちらのエレメント配置で作成しました。

Elements Treeの例
図8. Elements Treeの例
各エレメントの配置
図9. 各エレメントの配置

画像には補足として、Groupのみ赤枠で説明しています。

Input questionのデータ型をtextにしておくのを忘れないでください。

ワークフローを構築する前に、タイプMessageにユーザーが送信する文言のデータを保存するquestions、GPTからの回答を保存するcontentsフィールドを作ります。

サイドメニューのDataから追加できます。

MessageタイプとContents,questionsフィールドを作成
図10. タイプとフィールドを作成

続いてButton sendのワークフローでは、Input questionの入力内容をGPTに送信した後、入力を空にする必要があります。Button sendのプロパティエディタからワークフローに入りましょう。

まず、PluginsメニューからOpen AI -Send messageを選択します。このときのワークフロー名は、先ほどAPI Connectorで設定した名前になっています。

 Plugins から関数を選択
図11. Plugins から関数を選択
GPTに送信するデータの選択
図12. GPTに送信するデータの選択

送信するMessageはInput questionの値になるので、このように選択してください。

続いて、GPTからの返答をデータベースに保存する必要があるので、Data(Things)メニューから「Create a new thing…」を選択します。

 データベースに返答を保存するワークフロー
図13. データベースに保存するワークフロー

contentsにSend message関数の戻り値(GPTからの返答)を保存するために、以下のように選択していきましょう。同時に送信した内容もquestionsに保存しておきます。

contentsとquestionsに格納するデータの設定
図14. contentsとquestionsに格納するデータの設定

最後に、Input questionの入力を空にするため、Element ActionsメニューからReset inputsを選択してください。

inputの入力を消すワークフロー
図15. inputの入力を消すワークフロー

これでワークフローが完了しました。Group logに対話ログが表示されるようにしていきましょう。

RepeatingGroup Messageのデータソース型はtextです。参照するデータソースを「Do a search for」より、以下のように選択します。

これは、Messageタイプのデータからquestionsデータの降順で表示する例です。最新の会話が上に来るようにするには、「Created date」を選択してください。

 RepeatingGroup Messagesの設定
図16. RepeatingGroup Messagesの設定

続いて、RepeatingGroup Message内に表示するtextの設定をしてきましょう。

Text my_questionのデータソース設定
図17. Text my_questionのデータソース設定

Messageタイプのquestionsを表示しています。contents表示の部分も同様に設定してください。

これで、GPTとのチャットログが表示できるアプリが完成しました。Previewから何か送信し、返答が表示されるか確認してみましょう。

記事を書くにあたり、以下のサイトを参考にしました。

Medium, How-To Guide: Build a Website to Talk to GPT-3 using Bubble and OpenAI in 21 Easy Steps (Beginner), https://medium.com/data-driven-fiction/how-to-guide-build-a-website-to-talk-to-gpt-3-using-bubble-and-openai-in-21-easy-steps-beginner-470671f1deeb

2024/02/19参照

まとめ

プラグインAPI Connectorを使ってOpen AIのAPIをbubbleと連携させてみました。他にも、Open AI関連のプラグインは多く提供されており、画像生成などもできるのでぜひ挑戦してみてください。

「システムを短納期かつ低予算で作成したい」
ローコード開発に興味がある
「煩雑なExcel管理から脱したい」
慣れ親しんだシステムを使って効率化したい
「大規模なシステム開発を行うためにPoCを行いたい」
「社内のDXを進めていきたい」
  • URLをコピーしました!

この記事を書いた人

株式会社ファンリピートのアバター

株式会社ファンリピート

FRnoteは株式会社ファンリピートのメンバーによって運営されている社内ブログです。ノーコード・ローコードの技術ブログを始めとして、最新のIT技術、業務で役立つノウハウなど様々なトピックをまとめています。


目次
閉じる