概要
社内規程、FAQ、経費精算マニュアル、IT申請FAQなどを対象に、関連する資料チャンクを検索し、OpenAI APIで根拠付き回答を生成します。
回答には参照元ファイル名やページ・シート・スライド情報を表示し、AI回答の根拠を確認できる構成にしています。
解決する課題
- 課題社内マニュアルが複数のファイルに分散しており、必要な情報を探すのに時間がかかる
- 課題担当者がいないと回答できない定型的な問い合わせが繰り返し発生する
- 課題回答の根拠がわからず、AIの出力をそのまま信頼できない
Before / After
Before
- ・ 複数ファイルを手動で検索
- ・ 担当者に都度確認が必要
- ・ 回答に時間がかかる
After
- ・ 自然言語で質問するだけで即回答
- ・ 参照元ファイル・ページを確認できる
- ・ 担当者への問い合わせを削減
処理フロー
- 1PDF / Word / Excel / PPT ファイルをアップロード
- 2テキスト抽出 → チャンク分割 → OpenAI Embeddings でベクトル化 → SQLite に保存
- 3ユーザーが質問を入力
- 4質問をベクトル化 → 類似チャンクを検索
- 5検索結果をコンテキストとして OpenAI API に送信
- 6参照元情報付きの回答を表示
フロー図
使用技術
PythonStreamlitSQLiteOpenAI APIOpenAI EmbeddingsPyMuPDFopenpyxlpython-docxpython-pptx
デモで見せる内容
・ 有給申請ルールを質問すると、FAQファイルから根拠付きで回答
・ IT申請方法を質問すると、Excelファイルの該当シートを参照して回答
・ 稟議フローを質問すると、Wordファイルの該当箇所を参照して回答
自分が作った部分
・ ファイル形式ごとのテキスト抽出ロジック(PDF / Word / Excel / PPT)
・ チャンク分割 + Embeddings によるベクトルストア構築
・ 類似検索 + プロンプト設計による根拠付き回答生成
・ 参照元表示(ファイル名、ページ、シート、スライド番号)
・ Streamlit による UI 全体
今後拡張できること
・ Webアプリ化(Next.js)、社内ポータルとの統合
・ 複数部門向けに権限管理を追加
・ ドキュメント更新時の自動再インデックス
・ 回答のフィードバック収集・精度改善
制限事項
・ 現状はローカル実行のデモ版です(本番デプロイは別途対応が必要)
・ 画像・図表のみで構成されたPDFの読み取りには非対応
・ OpenAI APIのレート制限・コストが発生します