こんにちは、だいちゃんです。
OpenAI APIを使った、kintoneアプリのレシピを生成するWebツールを作成/公開しました!kintoneでアプリを作る際のヒントとして使ってみていただけると嬉しいです😃
そんなにレスポンスにスピードを求めるものでもないのに加え、(ほぼ)JavaScriptで書ける楽さに甘えて、バックエンドにはGASを利用しています。
Webフォームに入力されたデータは、GASにPOSTされ(GAS側のURLはあまりバレたくないので正確にはPHPを噛ませてる)、GASからOpenAI APIを叩いて結果をGAS経由でフロントエンドまで返す流れになります。
また、OpenAI APIのmodelは GPT-3.5 Turbo を利用しています。
現状、GPT-4がまだ利用できない(1ドル以上の利用歴がないとダメらしい)状況なのと、使えるようになったとしても、費用的にも倍近くになること、GPT-3.5 Turboでも問題ない程度の回答が得られてることから、しばらくはこのまま使い続けるかと思います。
生成系AIを使う上で一番大事になるプロンプトについてです。
OpenAI APIでは、以下の3つのロールを使い分けて、プロンプトを投げることができます。
今回のツールでは、1回のやり取りで完結するため、assistantロールは利用していません。(おかげで結構トークンの節約になってる気がする)
フィールドタイプの種類や、回答形式など、毎回同じ内容になる前提条件については、systemロールを使っています。
英語のほうが理解してもらいやすいという記事もあったので、systemロールは、あらかじめ英訳したプロンプトを利用しました。日本語で試していないので比較はできませんが、Google翻訳で作った英文でも意図通りの回答が得られました。
Webフォームに入力された内容は、翻訳せずにそのままuserロールとして投げています。自動翻訳する手もありますが、入力された内容とニュアンスが違っていないかのチェックができないことから、ここは日本語で入力されたら日本語のまま投げるようにしました。
なお、プロンプトを精査するフェーズでは、無料で使えるWeb版のChat GPTやGoogle Bardを使っていろんなパターンのプロンプトを試しました。
自分がテストしている限りだと、1回の利用で、入力が130~180トークン程度、出力は120トークン~150トークン程度で、入出力あわせた費用は円換算で 0.07円 くらいでした。
AdSenseおいてるのでトントンくらいになってくれたら嬉しいなと思っています。
ちなみに、リミットを6ドル/月に設定しているので、1000回強くらいで頭打ちになって止まるはずです...
そこは利用状況とAdSenseの収益を鑑みて、調整しようと思います。
現段階では、一部のフィールドタイプのみを使った回答しかしないようになっています。
そのため、複数のアプリを跨ぐような設計、テーブルフィールドを使ったアプリや、アクセス権などの機能を前提としたアプリの設計はできません。
将来的には、結果を踏まえたアプリをダウンロードできる機能や、もっと複雑なアプリを設計できるようにしてみたいですが、プロンプトの内容や、レスポンス形式の設計が難しそうだなぁと思っています。
また、結果を出力する術もないので、結果画面を見ながら手動でアプリを作ってもらうしかない状況です。
kintone REST APIでアプリを作ることはできるので、ユーザーの利用環境にアプリを追加することも技術的にはできるはずですが、ID/PASSを預かるリスクや利用者の心理的ハードルを考えると難しそうですね。
現実的な案としては、僕の環境に自動でアプリを作って、人力で希望者に送付することでしょうか... コスパ悪いので 頑張ってレシピを見て各自で作ってください...
前回のURL短縮ツール に続き、今回は流行りのAIを使ったツールをなんとか動く形にまで仕上げられたので、今年の夏休みの自由研究は及第点もらってもいいのではないでしょうか!!