🧠

AIチャットボット開発の気づき(3)

に公開

メッセージにメタデータを含める

LLM と RAG を利用した Slackボット OssansNavi の開発・運用で得たノウハウを共有するシリーズ記事です
今回は 2024年3月頃の開発内容を紹介します。

前の記事: (2) 人を繋ぐ AI
次の記事: (4) LLM へ渡す形式はヒューマンリーダブルとする

一問一答で会話する ChatGPT などの公式ツールでは 人 対 AI の会話なのでメッセージ本文だけで必要な情報を網羅できます。
しかし Slack では複数人が会話するため、LLM が会話内容を把握するにはメッセージ本文に加えて発話者の情報も必要となります。

Aさん: ○○のトラブルについて詳細を教えてください
Bさん: △△という内容で原因は□□でした
Aさん: □□の修正方法について教えてください
Cさん: □□は××という方針で修正します
Aさん: @ossans_navi 会話を要約してください
ボット: ・・・

そこで LLM へ渡す情報の1行目に以下のように送信者名を付与することで、誰が発信した内容なのかを LLM が把握できるようにしました。

ユーザー名: Aさん
○○のトラブルについて詳細を教えてください
ユーザー名: Bさん
△△という内容で原因は□□でした

これで「会話を要約してください」に対して適切に応答できるようになりました。
ただしこの方法は応答の安定性面で若干の問題があり、その後の別の方法に変更しました。

このシリーズ記事は時系列順に開発・改善内容を書いていくのでいずれその問題と改善方法についても解説しますが、この問題につして切り出して解説した、「LLM API へ構造化データを入力する方法」という記事も執筆しているのでぜひ参照してください。

Discussion