PDFドキュメントから情報を抽出し、質問応答を行うRAG(Retrieval Augmented Generation)システムです。
- Google Gemini API を使用した高精度な質問応答
 - LangChain を活用したRAGパイプライン
 - FAISS による高速ベクトル検索
 - Docker による簡単な環境構築
 - GitHub Copilot を活用したAI支援開発
 - 現代的な開発環境 でのフル活用
 
このプロジェクトは以下のツールを使用して開発されました:
- VS Code - メインの開発環境
 - Docker - 一貫した開発・実行環境の提供
 - GitHub - バージョン管理とコラボレーション
 - GitHub Copilot - コード生成とプログラミング支援
 - Gemini Deep Research - 学術文献の調査と理解
 
- Docker & Docker Compose
 - Google AI Studio APIキー (取得方法)
 
git clone <repository-url>
cd my-rag-project# .env.example をコピーして .env を作成
cp .env.example .env
# .env ファイルを編集してAPIキーを設定
# GOOGLE_API_KEY=your_actual_api_key_here# イメージをビルド
docker build -t my-rag-app .
# コンテナを起動(インタラクティブモード)
docker run -it --rm -v $(pwd):/app my-rag-app bash# コンテナ内で実行
python main.py# 依存関係をインストール
pip install -r requirements.txt
# スクリプトを実行
python main.pymy-rag-project/
├── main.py                 # メインのRAGスクリプト
├── requirements.txt        # Python依存関係
├── Dockerfile             # Docker設定
├── .env.example           # 環境変数テンプレート
├── README.md              # このファイル
└── 深層学習とIITと自由エネルギー原理_.pdf  # 対象PDFドキュメント
- Python 3.11
 - LangChain - RAGパイプライン構築
 - Google Generative AI - Gemini API接続
 - FAISS - ベクトルデータベース
 - PyPDF - PDF処理
 - Docker - コンテナ化
 
- VS Code - 統合開発環境
 - Docker - コンテナ化技術
 - GitHub - ソースコード管理・バージョン管理
 - GitHub Copilot - AIプログラミングアシスタント
 - Gemini Deep Research - 研究・文献調査支援
 
- システムが起動すると、PDFドキュメントを自動で読み込み
 - テキストをチャンクに分割し、ベクトル化
 - 事前定義された質問に対して回答を生成
 - 参考にした情報源も表示
 
質問内容は main.py の70行目付近で変更可能です:
question = "このドキュメントに記載されている、統合情報理論とは何ですか?"以下は、統合情報理論について質問した際の実際の出力例です:
✅ APIキーを読み込みました。
🔄 ドキュメントを読み込んでいます...
✅ ドキュメントを 44 個のチャンクに分割しました。
🔄 チャンクをベクトル化し、データベースを構築しています...
✅ ベクトルストアの準備が完了しました。
🔄 RAGチェーンを構築しています...
✅ RAGチェーンの準備が完了しました。
--- 質問応答を開始します ---
質問: このドキュメントに記載されている、統合情報理論とは何ですか?
--- 回答 ---
提供されたコンテキスト情報からは、「統合情報理論」そのものについて直接的な説明は見つかりませんでした。
ただし、コンテキスト情報には「IITの原理をAI設計に適用すること」という言及があり、そこから間接的に以下の情報が読み取れます。
• IITの関連概念:
  • 中心概念: 内在的で還元不可能な因果力、生成モデルを通じた驚きの最小化
  • 主要指標: Φ(ファイ、統合情報量の尺度)、変分自由エネルギー(VFE、驚きの上限)
  • 存在論的立場: 最大のΦを持つシステムのみが「真の」存在を持つ。システムは統計的境界(マルコフブランケット)によって定義される。
  • 情報の見方: 内在的、観察者非依存、システム外在的、観察者依存(ベイジアン)、世界に関する不確実性の低減
また、IITの原理をAI設計に適用することは、「単純な改善策ではない」と述べられており、再帰的ネットワークは疎なフィードフォワードネットワークよりも訓練と実行が困難であるという文脈で触れられています。
--- 参考にした情報源 ---
1. 抜粋: 形 成 し う る か を 分 析 し ま し た。 結 論 と し て、 主 要 な 知 見 を 要 約 し、 未 解 決 の 課 題 を 特 定 し、 今 後 の 研 究 に 向 け た 具 体 的 な ロー ド マッ プ を 提 案 し ま す。...
2. 抜粋: 的 に 分 離 す る 境 界 で あ り、 す べ て の 相 互 作 用 は こ の ブ ラ ン ケッ ト の 感 覚 状 態 と 能 動 状 態 を 介 し て 行 わ れ ま す 18 。 マ ル コ フ ブ ラ ン ケッ ト の 存 在 は、 シ ス テ ム が FEP に よっ て モ デ ル 化 さ れ る た め の 前 提 条 件 で す 20 。...
3. 抜粋: 中 心 概 念 内 在 的 で 還 元 不 可 能 な 因 果 力 生 成 的 モ デ ル を 通 じ た 驚 き の 最小 化 主 要 指 標 Φ (ファ イ)、 統 合 情 報 量 の 尺 度 変 分 自 由 エ ネ ル ギー ( VFE )、 驚 きの 上 限 存 在 論 的 立 場 最 大 の Φ を 持 つ シ ス テ ム の み が「真 の」 存 在 を 持 つ シ ス テ ム は 統 計 的 境 界 (マ ル コ フブ ラ ン ケッ ト) に よっ て 定 義 さ れ る 情 報 の 見 方 内 在 的、 観 察 者 非 依 存、 シ ス テ ム 外 在 的、 観 察 者 依 存...
4. 抜粋: れ た 再 帰 的 ネッ ト ワー ク は、 疎 な フィー ド フォ ワー ド ネッ ト ワー ク よ り も 訓 練 と 実 行 が は る か に 困 難 で す。 し た がっ て、 IIT の 原 理 を AI 設 計 に 適 用 す る こ と は、 単 純 な 改 善 策 で は あ り ま せ ん。 「統 合 性」 (お よ び そ れ に 伴 う 堅 牢...
🎉 RAGシステムの実行が完了しました!
- 処理時間: PDFの読み込みからベクトル化まで数十秒で完了
 - チャンク分割: 44個の意味のある単位に自動分割
 - 関連情報抽出: 質問に関連する4つの情報源を自動選択
 - 日本語回答: コンテキストに基づいた自然な日本語での回答生成
 
❌ エラー: 環境変数 'GOOGLE_API_KEY' が設定されていません。
→ .env ファイルにAPIキーが正しく設定されているか確認
→ Dockerコンテナ内で実行しているか、または pip install -r requirements.txt が完了しているか確認
このプロジェクトはMITライセンスの下で公開されています。