Open7

雑談ジャーナルのプロトタイピング(実装編)

VanVan
  1. 日々の雑談内容を記録できること
  2. 成長が定量的に可視化できること
  3. 次回の雑談に向けてのアドバイスを提案できること
  4. 実際の音声から雑談内容を評価できること

の機能をもった雑談ジャーナルのプロトタイプを作製する。

VanVan

2.成長が定量的に可視化できること

2次情報からグラフ機能があることがわかった。
日々の雑談時間の総計を棒グラフにして表示するタブを作製した。

VanVan

3.次回の雑談に向けてのアドバイスを提案できること

提案はLLMが考えたブラックボックスな内容よりもエビデンスのある提案の方がよいと考える。

以前、Difyのワークフローを利用して、Google検索した内容をLLMに入力して回答をさせるRAGを実装したところ精度が悪かった。

https://qiita.com/vanchan2625/items/20e246d91ae9cd71273c

そこで純粋にPerplexityやGensparkを使うことができれば精度が向上するのではないかと考えた。
Gensparkは見当たらかったが、PerplexityはAPI利用ができるということで、Peplexity APIを利用したいと考えた。
APIリファレンスによるとLLMはLlama3.1のみとのこと。

https://docs.perplexity.ai/

連携できるワークフローツールを調査したところ、DifyのIssuesで試している方を見つけたのでDifyを選定することにした。

https://github.com/langgenius/dify/issues/3914

AppSheetーGASーDifyと連携させて、良かった点や悪かった点からエビデンスを示した次回アドバイスを出力させることができた。

VanVan

3.次回の雑談に向けてのアドバイスを提案できること(つづき)

また、事前に雑談する相手が決まっている際にどのようなトピックを話せばよいか提案してくれれば雑談が捗るのではないかと考えた。
そこで、相手の性別、年代、特徴を入力することで雑談のアドバイスを提案してくれるタブを作製した。
これもAppSheetーGASーDifyと連携させて、GPT-4oの最新モデルで提案内容を生成した。

VanVan

4.実際の音声から雑談内容を評価できること

PO9のわちさんが録音した歌の評価をしているQiita記事をみつけた。
https://qiita.com/yutowac/items/0f1e9660772accd485de

AssemblyAIというAPI利用可能な感情分析ができるサービスがあるとのことであった。
感情分析はPositiveNeutralNegativeの3段階評価。
https://www.assemblyai.com/

ただ、記事の内容がPythonであったため、GASでは実行できない。
APIリファレンスからTypeScriptのサンプルコードを見つけた。
https://www.assemblyai.com/docs/audio-intelligence/sentiment-analysis

GPT-4oにTypeScriptのサンプルコードをGASで実行できるコードに変換してもらった。

VanVan

4.実際の音声から雑談内容を評価できること(つづき)

iPhone標準のボイスメモの音声ファイルをAppSheetからGoogle Driveにアップロードし、その音声ファイルについて感情分析をすることにした。

が、iPhoneの音声ファイルはm4a形式のためAppSheetでアップロードできなそう。
AppSheetのフォーラムでも同じことを嘆いている投稿をみた。
https://www.googlecloudcommunity.com/gc/AppSheet-Q-A/How-to-pull-voice-memo-into-File-column-from-Voice-Memo-on/td-p/759264/page/2

WindowsのPCからmp3、mp4、wav形式などのファイルをAppSheetでアップロードしたところ感情分析ができることを確認した。(結果は日本語に翻訳している)

ただ、入力した音声がほとんどニュートラル判定となってしまう。
現状、実用的な機能とは言えない状態である。