FileMaker開発者のためのOpenAI APIとFileMakerの連携
OpenAI APIとFileMakerの連携
はじめの一歩
2024-06-24 DBPowers 野田修
AIばやりの昨今、
『始めてみたいけどどうやって始めればいいのかわからない』
という方のために
・OpenAI APIを利用するためのアカウントの作り方
・FileMakerからのAPIの利用の仕方
について解説いたします。
(このブログを作成したのは2024年6月です。
APIの作成の仕方や料金などはその時々で変更されていくと思われますのでご注意ください。)
先程の開発者ページに戻り、Dashboardボタンを押します。
ターゲット: $response
URL: https://api.openai.com/v1/chat/completions
curlオプション:
“-H \”Content-Type: application/json\” -H \”Authorization:Bearer ” & $key & “\” -d @$json”
『始めてみたいけどどうやって始めればいいのかわからない』
という方のために
・OpenAI APIを利用するためのアカウントの作り方
・FileMakerからのAPIの利用の仕方
について解説いたします。
(このブログを作成したのは2024年6月です。
APIの作成の仕方や料金などはその時々で変更されていくと思われますのでご注意ください。)
1. OpenAI API キーの取得までの流れ
OpenAI のホームページにアクセスします。Google検索してOpenAIをクリックします。
下図のページが表示されたら画面をスクロールして下の方を表示します。
下の方までスクロールするとDevelopers用(For Developers)のボタンがあるので、
「API」と書かれているパネルをクリックします。
「API」と書かれているパネルをクリックします。
<開発者ページ>
ページ中央のStart Buildingボタンを押します。
ページ右上、Sign Upボタンを押し、アカウント登録をしていきます。
<登録画面>
ここではGoogleアカウントを使って登録しますが、他のオプションを使っていただいてもかまいません。
使用するアカウントを選択(クリック)します。
使用するアカウントを選択(クリック)します。
パスワードを入力
<サインアップ後画面>
ページ右上のギアボタンを押して設定画面を表示
左カラムのBillingボタンを押す。
中央のAdd payment detailsボタンを押す。
Individualボタンを押します
<クレジットカード情報の登録と課金>
クレジットカードを登録し、Continueボタンを押すと元の画面にもどります。
APIの使用料は従量課金となりますので、Add to credit balanceボタンを押して課金します。
ここでは$10の課金をしておきます。
Contineボタンを押します。
Contineボタンを押します。
先程の開発者ページに戻り、Dashboardボタンを押します。
Dashboard画面
Welcomeダイアログを閉じたら、
左カラムのAPI keysボタンを押します。
右上のCreate New Secret Keyボタンを押します。
左カラムのAPI keysボタンを押します。
右上のCreate New Secret Keyボタンを押します。
キーが発行されたら、コピーし、安全な場所に保管してください。
2. FileMakerからのAPIキーの利用
ここからFileMakerからChatGPT APIを利用する方法について解説していきます。最もシンプルな構成のカスタムAppを作ってみました。
FileMakerレイアウト構成
このアプリに必要なのは上記3つのフィールド(resourceというテーブルの中のkey, prompt, resultフィールド)と以下に示す1つのスクリプトだけです。
矢印ボタンを押すとChatGPTに質問を投げて(以下のスクリプトを実行して)、その答えをresultフィールドに返してくれます。
矢印ボタンを押すとChatGPTに質問を投げて(以下のスクリプトを実行して)、その答えをresultフィールドに返してくれます。
このスクリプトの上半分でChatGPTに投げるJSONを作成しています。
最初に定義している変数$templateを見やすい形で表示します。
最初に定義している変数$templateを見やすい形で表示します。
「テキストを挿入」スクリプトステップでこのようなJSONテンプレート(変数$template)を用意しておきます。
プレースホルダー文字列である__PROMPT__部分にはあとでSubsitute関数を用いて、promptフィールドのテキスト(今回の場合は、「日本の総理大臣は?」)を流しこむようにします。
プレースホルダー文字列である__PROMPT__部分にはあとでSubsitute関数を用いて、promptフィールドのテキスト(今回の場合は、「日本の総理大臣は?」)を流しこむようにします。
このようにして作成したJSON($json)は「URLから挿入」スクリプトステップのcurlオプションの中で以下のようにして引き渡します。
urlから挿入
ターゲット: $response
URL: https://api.openai.com/v1/chat/completions
curlオプション:
“-H \”Content-Type: application/json\” -H \”Authorization:Bearer ” & $key & “\” -d @$json”
今回は$responseの値をそのままresultフィールドに代入していますが、本来はここでJSON関数を利用して必要な部分だけを抜き出すようにします。
デモの質問「日本の総理大臣は?」の質問に対して「私の情報は2023年10月まで更新されています。」とあるようにLLMは過去の一地点までの学習しかないことに注意が必要です。
また、このAPIはあくまで1回の質問に対しての答えです。次、質問しても前回の質問を覚えてくれているわけではありません。このような問題を克服していくにはプロンプトの作成を開発者側が工夫していく必要があります。
今回はuserプロンプトについてしか言及していませんが、プロンプトのroleにはそのほかに幾つかの種類があります。リクエストJSONのmessagesプロパティの値が配列であることにも注意してください。
このあたりを深掘りしていくといろいろ面白い使い方が見えてくるはずです。
デモの質問「日本の総理大臣は?」の質問に対して「私の情報は2023年10月まで更新されています。」とあるようにLLMは過去の一地点までの学習しかないことに注意が必要です。
また、このAPIはあくまで1回の質問に対しての答えです。次、質問しても前回の質問を覚えてくれているわけではありません。このような問題を克服していくにはプロンプトの作成を開発者側が工夫していく必要があります。
今回はuserプロンプトについてしか言及していませんが、プロンプトのroleにはそのほかに幾つかの種類があります。リクエストJSONのmessagesプロパティの値が配列であることにも注意してください。
このあたりを深掘りしていくといろいろ面白い使い方が見えてくるはずです。
3. まとめ
FileMakerでOpenAI API(ChatGPT API)を利用していく上でのポイントを今回はお話しさせていただきました。
最後に幾つかの注意点をあげてお話しを終わりにしたいと思います。
最後に幾つかの注意点をあげてお話しを終わりにしたいと思います。
- APIキーの取り扱いには注意してください。ファイルにAPIキーを格納したまま、第3者にファイルを渡したりすることがないようにしてください。
- APIの利用料金について
従量課金なのでご注意ください。私自身は画像や大量のテキストデータを送りつけるような使い方はしていないので1ドル使うだけでも結構遊びがいがあるなと感じています。しかしながら、これはあくまでも個人の使用方法に大きく依存する話です。軽めの処理からはじめてそれがいくらぐらいの課金になるのか、確認しながら使っていかれることをお勧めします。また、最初に高額な課金をするのではなく、少額の課金から始めるようにしてください。