市場分析のための情報収集とナレッジ化システム。指定されたキーワードに関する市場分析に役立つ情報を収集し、Gemini-2.0を用いて解析し、Neo4jデータベースにナレッジとして保存します。
- HTMLからの本文抽出と不要要素の除去(フォールバック戦略対応)
- Gemini-2.0-flash-expを使用した市場影響度分析(リトライロジック実装)
- Neo4jへのナレッジ保存と時系列管理(トランザクション管理強化)
- 高度なエラーハンドリングとリカバリー機能
- パフォーマンスモニタリングとメトリクス収集
- 自動スケーリングとリソース最適化機能
- 階層的なエラー処理システム
- エラーの種類に応じた適切な処理
- カスタムエラークラスによる詳細な例外管理
- フォールバック戦略によるコンテンツ抽出
- 複数の抽出方法の自動切り替え
- エラー発生時の代替手段の自動選択
- トランザクション管理による一貫性保証
- ACID特性の完全な保証
- ロールバック機能の自動化
- エラーレート監視とサーキットブレーカー
- リアルタイムエラー率の計測
- 閾値に基づく自動停止機能
- 自動リトライと指数バックオフ
- スマートリトライ戦略
- 負荷に応じた待機時間の自動調整
- 並行処理による高速化
- 非同期処理の効率的な実装
- スレッドプールの動的管理
- データベース操作の最適化
- インデックス戦略の改善
- クエリパフォーマンスの監視
- メモリ使用量の効率化
- メモリリーク検出機能
- ガベージコレクション最適化
- メトリクス収集と監視
- リアルタイムパフォーマンス分析
- 異常検知機能の実装
- キャッシュ戦略の実装
- LRUキャッシュの導入
- キャッシュヒット率の最適化
- Python 3.10以上
- Poetry
- Neo4jデータベース
- Google Cloud Platformアカウント(Gemini APIキー用)
- リポジトリのクローン:
git clone [repository-url]
cd adoptive-market-crawler- 依存関係のインストール:
poetry install- 環境変数の設定:
.envファイルを作成し、以下の変数を設定:
GOOGLE_API_KEY_GEMINI=your_gemini_api_key
neo4j_user=your_neo4j_username
neo4j_pswd=your_neo4j_password
- 仮想環境の有効化:
poetry shell- テストの実行:
pytest- コードフォーマットとリント:
black app tests
flake8 app tests.
├── app/
│ ├── content_fetcher.py # コンテンツ取得
│ ├── content_parser.py # HTML解析(フォールバック対応)
│ ├── gemini_analyzer.py # Gemini API連携(リトライ機能)
│ ├── market_analyzer.py # 市場分析ロジック
│ ├── neo4j_manager.py # DB管理(トランザクション制御)
│ └── knowledge_repository.py # ナレッジ管理
├── tests/
│ ├── test_unit/ # 単体テスト
│ ├── test_integration/ # 統合テスト
│ └── test_performance/ # パフォーマンステスト
├── docs/
│ ├── 01.requirements/ # 要件定義
│ ├── 02.basic_design/ # 基本設計
│ ├── 03.detail_design/ # 詳細設計
│ └── ...
└── pyproject.toml
以下のメトリクスを自動的に収集し、監視しています:
- API呼び出しの成功率と応答時間
- エンドポイント別の成功率
- レイテンシー分布の分析
- データベース操作のパフォーマンス
- クエリ実行時間の追跡
- コネクションプール使用率
- エラー発生率とリカバリー成功率
- エラータイプ別の発生頻度
- リカバリー処理の成功率
- リソース使用状況(メモリ、CPU)
- リアルタイムメモリ使用量
- CPUロード分析
- キャッシュヒット率
- キャッシュ効率性指標
- メモリ使用効率
このプロジェクトはMITライセンスの下で公開されています。