Slack × Vertex AI Search でナレッジを育てるAIを作ってみた
Slack のナレッジが埋もれがち
Slack は便利なツールですが、大量のメッセージの中で重要な情報が埋もれてしまいがちです。キーワード検索では曖昧な表現を拾えず、別のナレッジ管理ツールへの移行は手間がかかります。そこで普段のコミュニケーションを自動的に整理・検索できる AI ソリューションを作ってみました。
ナレッジを育てる AI
理想は「普段使っているツールの中で、自然と知識が蓄積される」仕組みです。
普段私は開発で Devin という Agent ツールを使っているのですが、Devin はみんなで「育てる」というコンセプトがあります。
この考え方をナレッジ活用に持ってくるのは面白いのではないかというのがきっかけです。
そこで考えた構成が Google Cloud の Vertex AI Search と Slack を組み合わせた「ナレッジを育てる AI」です。
Vertex AI Search
Vertex AI Searchとは、Google が提供する AI 搭載の検索エンジンです。
普通の検索と違うのは「意図を理解してくれる」という点です。例えば「プロジェクトの締め切りいつ?」と質問したら、たとえ「締め切り」という言葉が使われていなくても「来週金曜日までに資料を提出してください」というメッセージを見つけてくれます。
DB 検索 vs Vertex AI Search
DB検索: "締め切り"
→ ヒット: 「締め切りは5月末です」
→ 未ヒット: 「5月31日までに提出してください」(単語が一致しないため)
Vertex AI Search: "プロジェクトXの締め切りいつ?"
→ ヒット: 「プロジェクトXの資料は5月31日までに提出してください」
→ ヒット: 「Xの納期は今月末だよ」
単語の一致ではなく、「意味」を理解して検索してくれるんです。これはベクトル検索技術で、言葉を数値(ベクトル)に変換し、意味的に近いものを見つけ出します。組織特有の言い回しも学習するので、「例のアレ」のような曖昧な表現でも文脈から推測できます。
システム構成
このシステムでは、主に以下のツールを用いています。
-
Cloud Functions: Slack からのイベント(メッセージ、リアクションなど)を受け取り、適切な処理を行います。例えば、新しいメッセージが投稿されたらインデックス登録処理を、Bot へのメンションがあったら質問応答処理を実行する形です。
-
Vertex AI Search: 検索のコアエンジンです。テキスト、画像、PDF など様々な形式のデータを理解し、セマンティック検索を提供します。単なるキーワードマッチではなく、質問の意図を捉えた検索が可能です。
-
Firestore: メタデータやユーザー設定などを保存する NoSQL データベースです。どのメッセージがすでにインデックス化されているかといった状態管理にも使われます。
-
Vertex AI Gemini: 大規模言語モデルを利用して、自然な応答を生成します。単に検索結果を返すだけでなく、結果を要約したり、質問に直接答えたりします。
技術的に面白いのは、これらのサービスがすべてサーバーレスで動作するため、運用負荷が非常に低いという点です。スケーリングも自動的に行われるので、ユーザー数やメッセージ量が増えても問題ありません。
処理の流れ
処理は主に 2 つ:メッセージ投稿時は自動的にインデックス化され、AI 質問時は関連情報を検索して回答を生成する流れです。これにより特別な操作なしで自然にナレッジが蓄積・活用されます。
実際に動かしてみる
-
例えばこんな投稿があったとします
-
スレッドでBotに「覚えて」とリプライ
-
Vertex AI Searchのデータセットが更新
-
メンションして聞いてみると、該当の内容から回答してくれる
まとめ
Vertex AI SearchとFirestoreの組み合わせでかなり簡単にお手軽RAGを作ることができます。
ソリューションなら、普段の Slack コミュニケーションをそのまま活かしながら、自然と知識を蓄積・活用できます。特別な作業は必要ありません。いつも通り会話するだけで OK です。
「あの情報どこだっけ?」というフレーズとはもうサヨナラ。過去の知恵を簡単に引き出せる環境で、チームの生産性をもう一段階上げてみませんか?
最後まで読んでいただき、ありがとうございました。みなさんのチームでも、AI を活用した新しいナレッジ管理の形を試してみてください。きっと新しい発見があるはずです。
Discussion