こんにちは、キン担ラボの本橋です。6月の後半は延々とプラグインに設定するプロンプトの実験をしていました。
この記事では、『プロンプトで作れるkintoneプラグイン』をテーマに、ChatGPT連携プラグインの可能性を追求した実験結果を公開しています。
https://github.com/motohasystem/KintoneChatGPTPlugin
前置きを飛ばしてサンプルを見に行きたい人は、以下の目次から「プロンプトの4分類」までジャンプしてください。
さて、前回の記事ではChatGPT連携プラグインのセットアップと使い方について解説しました。
kintone上にプラグインをインストールして、OpenAIのAPI呼び出し設定までがこの手順で終わっていることになります。
続けて今回の記事では実際に様々な機能を実現できるプロンプトのサンプルを紹介していきます。(思い通りに動作しなかったカスタマイズもあったので、それは別途ボツネタとしてご紹介予定です。)
まずは『プロンプトを書き換えることで異なる動作をする』の仕組みを解説します。
プロンプトがプラグインに化ける仕組み
こちらはソフトウェアの仕組みを抽象化したものです。いろんなところで目にする図ですね。
入力に対して、ソフトウェアが処理をして、何らかの出力をする。あらゆるソフトウェアはこの仕組みで動作しています。
この「ソフトウェアで処理」をChatGPTのプロンプトに肩代わりさせたものが『ChatGPT連携プラグイン』です。
プラグインの設定画面では、インプットとしてひとつの文字列フィールドを指定して、アウトプット先として別の文字列フィールドをそれぞれ指定します。
シンプルですね。大枠の仕組みとしてはこれくらいで動作しています。
プロンプトの設定方法
ここで紹介しているプロンプトは1-shotといって、「こんなふうに出力してくださいね」とサンプルを教える形で作成しています。
プラグイン設定画面を開いて、以下の設定例を参考に役割プロンプトと対話例プロンプトにそれぞれ入力してください。
JSONファイルの利用方法
このあとに続くそれぞれの見出しの(json)の部分には、プラグイン設定用のjsonファイルへのリンクを張っています。保存したjsonをプラグイン設定画面の『⬆設定をアップロード(復元)』から読み込ませることでも設定を復元できます。こちらもお試しください。
またjsonはすべてgithub gistで公開していて、こちらのリンクから一覧することができます。
ChatGPT連携プラグイン用の設定集 (github.com)
ここまで、前置きでした。
プロンプトの4分類
作成したプロンプトは動作の特徴(文章量の増減)から4つに分類しました。
発想系プロンプト
要約系プロンプト
変換系プロンプト
翻訳系プロンプト
それでは作成したアプリを紹介していきたいと思います。全部で16件あります!
【発】発想系プロンプト
ひとことふたことの情報をあたえると長々と作文してくれる系統のプロンプトを発想系としてまとめています。アイデア出しやブレインストーミングにどうぞ。
四字熟語メーカー(json)
文章を入力すると、その光景を説明できるような架空の四字熟語を作成してくれます。
kintoneを逆クイズメーカーにする設定。なかなかハルシネーションが酷くて、いっそのことハルシネーションを体験したいときにおすすめの使い方。
大量の情報を必要とするためか、GPT-4を使ったほうが良いクイズを作ってくれました。
時候の挨拶メーカー(json)
基準日を指定すると、時候の挨拶を3つ提案してくれる代書屋さんです。
ビジネスメールでは使わないと思いますが、プライベートで手紙を書こうとしたときにどうぞ。
GPT-3.5だと文頭に敬具とか入れてきたりして怪しい。GPT-4がおすすめ。
日付入力のフィールドを使いたいので、アプリのフィールド設定で日付フィールドから下記の自動計算で一行テキストに日付を書き出して、入力として使ってください。
よく当たると評判の占い師をkintoneアプリに閉じ込めました。デモ用として分かりやすい。
生年月日を入力すると、四柱推命、占星術、数秘術、九星占い、水晶玉占いで占った結果を教えてくれます。
『時候の挨拶メーカー』と同じく、日付を自動計算で一行テキストに展開して使います。
食材と人数を入力することで、ご家庭で作れるレシピを提案してくれるレシピ提案アプリに仕立てました。
人数用の数値フィールドと、食材用の一行テキストを自動計算で入力フィールドにまとめると使いやすいかと思います。
【要】要約系プロンプト
入力した文章を数個の単語や短文にまとめて文章量を大きく削減するプロンプトを要約系としてまとめました。
論理性チェッカー(json)
文章の論理性をChatGPT にチェックさせるkintoneアプリです。改善案をそのまま使うもよし、解説を読んで自分なりに書き直すことで作文トレーニングにするのも良いかと思います。
メールを書いたときに一度チェックしておくと変な事故を避けられるかも。
この使い方も言語能力に依存するのでGPT-4の利用推奨です。
入力した文章のカジュアル度とフォーマル度を分析して添削してくれるアプリ。
文章を書いていて「ユルすぎかなぁ」「真面目すぎる?」と、第三者(AI)の意見を聞いてみたい孤独な仕事のお供になります。
変数名サジェスト(json)
コードを書いているときに変数名や関数名をどうしようか迷うことがあると思います。
そんなときにこのkintoneアプリ。
変数名に込めたいシチュエーションを入力するとcamelCase, PascalCase, snake_caseで提案してくれます。僕も便利に使ってます。
略称にしたいアルファベット数文字と、略語化したい説明文を入力することで、それぞれのアルファベットを頭文字にした言葉を作成してくれます。
『バクロニム』と呼ぶそうで、どっかでこんなWebサービス見かけた覚えがあります。
【変】変換系プロンプト
入力した文章を別の文体や表現方式に書き換えるプロンプトを変換系としてまとめました。
易化難化リライター(json)
入力した文章の難易度を10段階で評価して、難しければ簡単に、簡単なら難しくリライトしてくれる #kintone アプリ。難易度の採点機能付き!
箇条書き↔書き下しリライター(json)
箇条書きの文章を書き下しの文章に、または書き下しの文章を箇条書きの文章に書き換えてくれるリライターアプリ。
内部的に条件分岐を判断させるプロンプトはGPT-4を使わないと失敗することが多い印象。
csvを貼り付けてmarkdownテーブル化してもらうツール。
csvもmarkdownも日本語も英語もLLMから見たらどれも言語なので相互変換(翻訳)もお手の物。ChatGPTにcsvを読ませると行も列も認識して回答してくれるので割といろんなことできます。また、この手の変換はGPT-3.5でも十分な精度を出してくれるようです。
markdownテーブルは手で書こうとするとうまく行かないことが多くてvscodeの拡張機能を使って作成していますが、kintoneでも実現できました。
sort | uniq | wc -l(json)
sort | uniq | wc -l くらいならChatGPTがコマンドを肩代わりしてくれます。
やってみたらできた、というだけでChatGPTには信頼性が低いタスクなので使い所があんまり無いです。
【翻】翻訳系プロンプト
変換系のうち、英語や中国語に翻訳するタイプのプロンプトを翻訳系として別に分けました。LLM的には本質的な違いはないのだと思いますが、我々人間から見たわかりやすさ重視です。
画像生成プロンプト(json)
入力した文章を画像生成プロンプト化します。
画像生成プロンプトはちょっとした工夫があるので多少の慣れが必要な分野です。事前処理的にこのアプリを通してDALL-Eとかに投げてあげる使い方を想定しています。
例えば画像生成を意図していない文章から画像生成AIを呼び出したいときにもよさそう。
自動計算を経由する形にすれば、例えばドロップダウンから画像のスタイルを選んで、登場人物やシーンもラジオボタンで選べるようにすると、文字入力が難しいシーンでも使えますね。
英中語訳シソーラス(json)
単語を入力すると、その類義語と対義語と、英語訳中国語訳をテーブルで出力してくれます。
辞書サイトはたくさんあるけど広告もなく必要最小限の情報だけ回答してくれる自分専用のkintoneツールとしてお使いください。
入力は単語である必要はなくて、「感じがする、イメージになる、風に思う」と雰囲気で作文してもそれに対応する単語を提案してくれます。
「こんな表現の単語があったはずだけどなんて言うんだっけ」と逆引き辞書にもなります。
語学学習のお供として便利なプロンプト。日本語の文章を入力すると、一文ごとに分割した上で、それぞれの文に英語と中国語で対訳をつけてくれます。もちろん、プロンプトを書き換えればスペイン語でも韓国語でも対応できます。
この手の「複数の自然言語処理を組み合わせる」用途にChatGPTは向いています。
以上、ChatGPT連携プラグインで自作するkintoneアプリの紹介でした。みなさんも「こんなプラグインを作ってみたよ」とぜひ共有してみてください。