🐦 SlackにAWSで社内文書RAGボットを作った話【全手順まとめ】

社内に規定やマニュアルが増えるほど深刻化する「どこに書いてあったか思い出せない」問題。その解決策として、Slackでボットにメンションするだけで社内ドキュメントを検索し、自然言語で回答するRAGボットをAWSで構築した記録。 裏側はAWS Bedrock Knowledge Baseが関連文書を検…

Share

社内に規定やマニュアルが増えるほど深刻化する「どこに書いてあったか思い出せない」問題。その解決策として、Slackでボットにメンションするだけで社内ドキュメントを検索し、自然言語で回答するRAGボットをAWSで構築した記録。

Slack × AWS Bedrock 社内文書RAGシステム 構成図
Slack × AWS Bedrock 社内文書RAGシステム 構成図
クラウドサービス採用可否について質問すると、参照ドキュメント4件とともに回答が返ってきた
▲ 質問に対して参照ドキュメントを明示しながら回答。引用元を確認できる。
RAGが参照したDS-110解説書(デジタル社会推進実践ガイドブック)のPDF
▲ ボットが参照したドキュメントの実物。社内文書をそのままS3に格納してRAG化している。
前の質問を受けて「そのリストにないサービスは?」と連続質問。文脈を引き継いで回答している
▲ スレッド内の連続質問にも対応。DynamoDBで会話履歴を管理し、文脈を保持している。

裏側はAWS Bedrock Knowledge Baseが関連文書を検索し、AIが文脈に沿った回答を生成する仕組み。回答には参照元ファイル名がボタンとして付き、同一スレッド内なら会話の続きとして追加質問にも対応。新規AWSアカウントと新規Slackワークスペースだけでゼロから構築し、実際に質問→回答が成立するところまで検証済み。

構成のポイントは、Lambdaを「3秒以内に即応答する受信役」と「検索・生成を担う処理役」の2段に分離し、Slack Events APIのリトライ制約を回避したこと。さらにLambdaには追加ライブラリを一切持たせず、署名検証はPython標準ライブラリとboto3だけで実装。「ビルド成果物が静かに壊れる」リスクごと排除する設計判断が肝。

製品マニュアルやFAQ、技術仕様書など任意のドキュメントにも応用できる汎用構成。

続きはZennの有料本で詳しく解説しています。→ SlackにAWSで社内文書RAGボットを作った話【全手順まとめ】