このページの本文へ

前へ 1 2 次へ

柳谷智宣のkintoneマスターへの道 第112回

Zoomの録音をkintoneに登録し、ChatGPTに議事録を生成させる連携にチャレンジ

2023年06月26日 13時00分更新

文● 柳谷智宣 編集●MOVIEW 清水

  • この記事をはてなブックマークに追加
  • 本文印刷

 makeで次の手順として、「HTTP」の「Make a request」を追加。URLには「https://○○○○○.cybozu.com/k/v1/file.json」と入力。「○○○○○」の部分は自分のkintoneを見て入力しよう。「Method」は「GET」、「Headers」の「Item 1」は「Host」と「○○○○○.cybozu.com:443」、「Item 2」は「X-Cybozu-API-Token」と議事録アプリで作成したAPIトークンだ。

 下にスクロールし、「Body type」は「Raw」、「Content type」は「JSON(application/json)」と入力。「Request content」のところには、{"fileKey":"{{1.record.音声ファイル.value[].fileKey}}"}」と入力するのだが、注意が必要。

 音声書き起こしをするAPIに渡すためにファイルの情報を取得するのだが、そこは左側にポップアップする候補から、「音声ファイル」→「Value」→「fileKey」をクリックして入力すること。

kintoneマスターへの道

「genkabar」のところやItem 2のAPIキーは自分の情報を入力すること

kintoneマスターへの道

「Request content」の入力に注意

 次も、「HTTP」の「Make a request」を追加し、音声書き起こしAPIに取得したファイルを投げる。URLは「https://api.openai.com/v1/audio/transcriptions」、「Method」は「POST」。「Headers」の「Item 1」は「Authorization」で、「Value」は「Bearer」の後ろに半角スペースを空けて、OpenAIのAPIキーを入力する。

 「Item 2」は「Content-Type」、「multipart/form-data」と入力。「Body type」は「Multipart/form-data」を選択し、「Fields」の「Item 1」→「Field type」と「Key」は両方とも「File」にする。

 「Data」には、前のステップの「Data」を選択。ファイル名は「test.m4a」にする。kintoneにアップロードする添付ファイルも必ず、同じファイル名にしておく必要があるので注意しよう。

 「Item 2」は「Field type」が「Text」、「Key」が「model」、「Value」が「whisper-1」と入力して、「OK」をクリックする。

 四宮氏のエントリーには、ここまでで「拍子抜けするほど簡単」とあったが、筆者はエラーを起こしまくりだった。

kintoneマスターへの道

OpenAIのAPIキーは「Bearer」の後ろに半角スペースを空けてからペーストする

kintoneマスターへの道

「Data」はポップアップの候補から選ぶ

kintoneマスターへの道

利用する音声書き起こしエンジンを指定する

 次は要約、OpenAIのモジュールを追加。アクションは「Create a Competion」を選び、OpenAIのAPIキーを入力する。さらにここでは、自分の「Organization ID」も必要なので、OpenAIのサイトからコピペする。

 「Select Method」は「Create a Chat Completion」を選択。「Model」は「gpt-3.5-turbo」や「gpt-4」を選ぶ。「Messages」にはプロンプトを入力する。

 Whisperが書き起こしたテキストはそのままでは読みにくいので、まずはChatGPTにプロンプトを渡して整形してもらう。その時のデータは、「Data」→「Text」を選択する。上の階層の「Data」を選択しないように注意しよう。プロンプトは以下の通り。

#############################
以下のデータを改行付きで整形し、日本語としておかしい文章は修正をしてください。
{{3.data.text}}
#############################

kintoneマスターへの道

OpenAIのAPIキーとOrganization IDを入力する

kintoneマスターへの道

ChatGPTへのプロンプトを入力する

 次も、同じくChatGPT。途中まで同じように設定し、「Messages」の「Role」は「System」、プロンプトは以下のように書く。

#############################
あなたは会社の社員として会議に参加しています。入力された内容を元に以下の形式で議事録を作成してください。

会議タイトル
参加者
■本日の議題
-箇条書き
■議論の内容
-箇条書き
■今後の課題
-箇条書き
#############################

 「Item 2」の「Role」は「User」で、プロンプトには「以下の議題の内容の議事録を作成してください」と入力する。前のステップで要約したテキストは、候補から「Choices」→「Message」→「Content」とたどって入力すること。

kintoneマスターへの道

ChatGPTに文字起こしから、議事録の体裁にまとめてもらう指示を出す

 最後に、kintoneに書き込むので、「HTTP」の「Make a request」を追加し、「URL」に「https://○○○○○.cybozu.com/k/v1/record.json」と入力する。2ステップ目で入力したURLに似ているが、微妙に異なるので注意すること。「record.json」が「file.json」になっていて当然エラーになり、四宮氏に見つけてもらうまでお手上げ状態だった。

 続く「Method」は「PUT」、「Headers」の「Item 1」は「Host」と「○○○○○.cybozu.com:443」、「Item 2」は「X-Cybozu-API-Token」と議事録アプリで作成したAPIトークンだ。さらに、「Body type」は「Raw」、「Content type」は「JSON(application/json)」と入力。

 「Request content」のところには、以下のように入力する。アプリ番号、レコード番号、4ステップ目で得られた出力、5ステップ目で得られた出力は候補から選択する。

#############################
{
"app":{{1.app.id}},
"id":{{1.record.`レコード番号`.value}},
"record":{
"内容":{
"value":"{{5.choices[].message.content}}"
},
"音声書き起こし":{
"value":"{{4.choices[].message.content}}"}
}
}
#############################

kintoneマスターへの道

kintoneにテキストを描きこむ設定をする

kintoneマスターへの道

最後だけ、プログラムっぽい記述がある

 これで準備完了。「Run once」をクリックして、kintoneに音声ファイルを登録してみよう。すぐに、makeのシナリオが走り始め、音声ファイルの取得、音声ファイルの送信と文字起こし、ChatGPTに依頼、その結果を要約、最後にkintoneに書き込み、と処理が進んでいく。

 完了したら、kintoneアプリの画面を更新すれば、無事、議事録が完成している。

kintoneマスターへの道

「Run once」をクリックして動作スタート

kintoneマスターへの道

kintoneに音声ファイルを登録して「保存」をクリック

kintoneマスターへの道

処理がスタートする

kintoneマスターへの道

kintoneに議事録が自動で入力できた!

 手間はかかったが、無事動作したときは感動した。今後は、このシナリオをカスタマイズするだけで、いろいろできそう。kintoneにChatGPTが利用できるのは夢が広がる。ChatGPTはプロンプト次第で無限の可能性を秘めている。皆さんもまずはテストでいいので、触れてみることをお勧めする。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事