こんにちはジョージです。突然ですが時代は ChatGPT です。このビッグウェーブに我々じぇねんちゅも乗るしかありません。
そんな ChatGPT を FileMaker から使ってみましょう!
ChatGPT とはなんですか?
検索エンジンで調べるのもあれなので、ChatGPT で質問してみましょう。
curl --location --request POST 'https://api.openai.com/v1/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer Your API Key' \
--data-raw '{
"model": "text-davinci-003",
"prompt": "ChatGPT とは何ですか?",
"temperature": 0.3,
"max_tokens": 300,
"top_p": 1.0,
"frequency_penalty": 0.0,
"presence_penalty": 0.0
}'
※ Your API Key には、Open AI ウェブサイトで作成したアカウントから発行される API キーが必要です。
リクエストがうまく処理されると、以下のような回答が返ってきます。
ChatGPT は、自然言語処理技術を使って、人間のような自然な会話を行うチャットボットの一種です。GPT とは Generative Pre-trained Transformer の略で、自然言語処理のための事前学習モデルです。ChatGPT は、事前学習モデルを使って、ユーザーの質問に自然な回答を返すことができます。
なるほど理解できました。FileMaker には URL から挿入スクリプトステップがあるので cURL オプションを使って ChatGPT にリクエストができそうです。
Open AI アカウントの作成とAPI キーの取得
参考になるウェブ記事が何個もあるので、別途そちらをご参照ください。
なお現時点(2023/01/10 時点)では Open AI アカウントの作成にはメールアドレスやショートメッセージが受信できる電話番号が必要なようです。
FileMaker に実装
ChatGPT は冒頭で紹介した cURL オプションを用いてリクエストを送信します。
必要なオプションは JSON 関数で作成できるので、エラー処理などを気にしなければ、シンプルなテーブルと最低限のフィールド、以下のスクリプトで十分動作可能でしょう。
# #
変数を設定 [ $url ; 値: テーブル::url ]
変数を設定 [ $method ; 値: "POST" ]
変数を設定 [ $secret ; 値: テーブル::secret ]
#
# "model": "text-davinci-003",
"prompt": "Claris International の社長は誰ですか?",
"temperature": 0.3,
"max_tokens": 100,
"top_p": 1.0,
"frequency_penalty": 0.0,
"presence_penalty": 0.0
#
変数を設定 [ $payload ; 値: "{}" ]
変数を設定 [ $payload ; 値: JSONSetElement ( $payload; [ "model"; テーブル::model ; JSONString ] ) ]
変数を設定 [ $payload ; 値: JSONSetElement ( $payload; [ "temperature"; テーブル::temperature ; JSONNumber ] ) ]
変数を設定 [ $payload ; 値: JSONSetElement ( $payload; [ "max_tokens"; テーブル::max_tokens ; JSONNumber ] ) ]
変数を設定 [ $payload ; 値: JSONSetElement ( $payload; [ "top_p"; テーブル::top_p ; JSONNumber ] ) ]
変数を設定 [ $payload ; 値: JSONSetElement ( $payload; [ "frequency_penalty"; テーブル::frequency_penalty ; JSONNumber ] ) ]
変数を設定 [ $payload ; 値: JSONSetElement ( $payload; [ "presence_penalty"; テーブル::presence_penalty ; JSONNumber ] ) ]
変数を設定 [ $payload ; 値: JSONSetElement ( $payload; [ "prompt"; テーブル::prompt ; JSONString ] ) ]
// 変数を設定 [ $payload ; 値: JSONSetElement ( $payload; [ "stop"; "[\"\n\"]" ; JSONString ] ) ]
変数を設定 [ $option ; 値: "-X " & $method & " -H \"Content-Type: application/json\"" & " -H \"Authorization: Bearer " & $secret & "\"" & " -d @$payload" ]
URL から挿入 [ 選択 ; ダイアログあり: オフ ; ターゲット: $result ; $url ; cURL オプション: $option ]
フィールド設定 [ テーブル::result ; $result ]
フィールド設定 [ テーブル::json ; JSONGetElement ( テーブル::result; "choices[0]text" ) ]
#
#
#
#
#
ChatGPT に聞いてみた
カスタム App が完成したら、早速 ChatGPT に質問してみましょう!
Claris International の社長は誰ですか?
Claris International の社長は、Brad Freitag です。
※ 2023/01/30 時点での回答です。
素晴らしいです、これは期待できます。
ChatGPT にスクリプトを書かせてみた
ここからは、一気に難易度をあげます。
FileMaker で 1 から 100 までカウントするスクリプトを書いてください
Loop
Set Variable [$Counter; Value: 1]
Loop
Exit Loop If [$Counter = 100]
Set Field [FieldName; $Counter]
Set Variable [$Counter; Value: $Counter + 1]
End Loop
End Loop
※ 2023/01/30 時点での ChatGPT の回答です。
おしい!でも、かなりいい線いってます。ChatGPT の回答はテキストなので、そのままカスタム App にはペーストできませんが、将来期待できますね。
ChatGPT に聞いてみた 2
それでは最後に禁断の質問をしてみましょう!関係者の皆様、覚悟はよろしいですか?
日本で一番有名な FileMaker カスタム App 開発会社はどこですか?
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
日本で一番有名な FileMaker カスタム App 開発会社として、株式会社インターナショナル・サイエンス・サービス(ISS)が挙げられます。ISSは、FileMaker Proを使用したビジネスソリューションを提供しており、企業のニーズに合わせたカスタムアプリケーションの開発を行っています。
※ 2023/01/30 時点での ChatGPT の回答です。
?????政治的な内容はどうやら答えづらいのかもしれません。。。
ともあれ、ChatGPT は cURL でやりとりできるのでカスタム App にも組み込みやすい事がわかりました。
今後は FileMaker のスクリプトを学習させてもう少し精度の高い回答を得られるようにトレーニングされるとよいですね。
気になる方はチャレンジしてみてください!