はじめに

やること「OpenAI を呼び出してテキストを生成する」を使用すると、OpenAIが開発した生成AIのChatGPTを使用して、テキストを生成することが可能です。


簡単な利用方法としては「OpenAI にメールの例文を考えてもらう」がありますが、ここでは複数のレコードの情報をまとめてOpenAIに渡して、横断的に解析した結果を受け取る方法をご紹介します。


想定するアプリ

今回は例として kintone アプリストアにある「案件管理」アプリを使用します。案件管理アプリには、顧客ごとの見込み時期や確度などが登録されていますので、これをOpenAIを使って分析したいと思います。



ただ、「案件管理」アプリはそのまま使用するとフィールドコードが「文字列__1行_」などとなっているため、以下のように整えておきます。

※フィールド名とフィールドコードは同じものを指定します

フィールド名

フィールドタイプ

備考

会社名

文字列(1行)


見込み時期

日付


確度

ラジオボタン


製品名

ドロップダウン


ユーザー数

数値


小計

計算



もう一つ下準備として、「OpenAIテキスト生成用テンプレート」アプリを用意しておきます。このアプリはテンプレート名、プロンプトだけフィールドを用意しておけば十分です。


※フィールド名とフィールドコードは同じものを指定します

フィールド名

フィールドタイプ

備考

テンプレート名

文字列(1行)


プロンプト

文字列(複数行)



プロンプトの作成

作成した「OpenAIテキスト生成用テンプレート」アプリ内に、後ほど呼び出すためのプロンプト(OpenAIへの命令文)を作成しておきます。


この時、テンプレートとなるレコードは次のように設定しておきます。


レコードの「プロンプト」フィールドに格納している内容は次のようなものです。


# 命令書

あなたはクラウドサービスを開発・提供する会社の営業マネージャーです。

以下の前提条件を使用して、提案中案件の分析をしてください。


# 前提条件

現在の日付は 2018年1月1日です。

案件確度は A,B,C の3段階で評価し、Aランクは受注確度が最も高く、Cランクは受注確度が最も低いことを表します。


# 分析に使用するデータ

以下のデータを分析します。

データは1行が1案件を示しており、

会社名,見込み時期,確度,製品名,ユーザー数,小計

の形式となっています。


$FOR レコード IN @

${レコード.会社名},${レコード.見込み時期},${レコード.確度},${レコード.製品名},${レコード.ユーザー数},${レコード.小計}

$END


見込み時期は「2018-01-01」のように表記し、これは2018年1月1日であることを示します。

小計とはその案件で提示する案件の合計金額(単位:円)を示します。


# 主旨

製品ごとの傾向やユーザー数の大小による違いがあれば知りたいです。

結果には元データを含める必要はありません。簡潔に200文字程度で回答してください。


カスタマイズ

では、ここからは実際のカスタマイズについての説明です。


ボタンを作成する

やること「ボタンをメニュー位置に配置する」、条件「一覧画面を表示した時」でボタンを作ります。

「やること」のパラメータは

場所:レコード一覧メニューの右側

ラベル:OpenAIで分析

追加位置:一番右に追加する

とします。


OpenAIに送信するプロンプトとして使用するテンプレートレコードを取得

やること「キーを指定してレコードを取得する」、条件「ボタンを押した時」を使いボタンを押した時に、まずテンプレートレコードを取得します。

「やること」のパラメータは

取得先アプリ:OpenAIテキスト生成用テンプレート

キーとなるフィールド:テンプレート名    

キーの値:案件分析

とします。


分析に使用するレコードを取得

やること「一覧の条件でレコードを全件取得する」、条件「他のアクションの実行が完了した時」を使い、分析に使用するレコードを取得します。


今回は一覧の条件で絞り込んだすべてのレコードを処理対象とするため「一覧の条件でレコードを全件取得する」を使用してますが、「条件を組み立ててレコードを取得する」など様々な方法で取得したレコードをここでは選択可能です。


条件を組み立ててレコードを取得する」を使用すると、例として製品名が「kintone」のレコードのみを分析に使用するなどができます。

テンプレートをもとにテキストを生成する」でOpenAIに渡すメッセージテキストを生成する

やること「テンプレートをもとにテキストを生成する」を使い、OpenAIに渡すメッセージテキストを生成します。
「やること」のパラメータは

データレコード:3(「案件管理」アプリから取得したレコード)

テンプレートレコード:2(「OpenAIテキスト生成用テンプレート」アプリから取得したレコード)

テンプレートフィールド:プロンプト

セット先フィールド:指定しない

とします。


実行してよいかダイアログで確認する

やること「確認ダイアログを表示する」を使い、確認ダイアログを表示します。

「やること」のパラメータは

メッセージ入力:

OpenAIを呼び出しますがよろしいですか?

OKボタンの名前:OK

キャンセルボタンの名前:キャンセル

とします。


読み込み中画面を表示する

ダイアログでOpenAIを呼び出して良いことを確認できたので、やること「読み込み中画面を表示する」、条件「確認・入力ダイアログで「OK」を押した時」で読み込み中画面を表示します。


OpenAIを呼び出す

やること「OpenAI を呼び出してテキストを生成する」を使い、テキストを生成します。

「やること」のパラメータは

OpenAI API キー:予め取得しておいたAPIキーを設定します。

言語モデル:GPT-4o

メッセージ:${$4} (「テンプレートをもとにテキストを生成する」の結果を使用)

セット先フィールド(省略可):省略します。


値が返ってきたらダイアログで表示する

テキストが生成されたら、やること「情報ダイアログを表示する」で結果をダイアログ表示します。


「やること」のパラメータは

メッセージ入力:${$7} (OpenAIからの返答)

OKボタンの名前:OK


読み込み中画面を終了する

やること「読み込み中画面を終了する」を使用して読み込み中画面を終了します。


実行してみる

実行した結果、以下のように表示されれば成功です!


おわりに

今回はやること「OpenAI を呼び出してテキストを生成する」を使い、複数のレコードの情報をまとめてOpenAIに渡して、横断的に解析した結果を受け取るカスタマイズを実現しました。


ぜひ、さまざまなメッセージをOpenAIに渡してみて動きを試し、あなたのkintoneにOpenAIのChatGPTをうまく組み込んでみてください。

ご不明点等ございましたら、チャットにてご質問ください。

Customineドキュメントサポートページもぜひご活用ください。