Cloud FinOps Graph RAG — クラウドコスト最適化エージェント
概要
本リポジトリは、知識グラフ(Neo4j Aura)と大規模言語モデル(Groq LLM:Llama3-70B)を組み合わせた「Graph RAG(Retrieval-Augmented Generation)」アプローチでクラウド費用の分析と最適化を支援するプロトタイプ実装です。Streamlitを用いたインタラクティブUIにより、ユーザーはグラフを使ったマルチホップ推論でリソースの関連性やコスト影響を探索し、エージェントがツールをオーケストレーションしてコストシミュレーションや改善案を提示します。過剰プロビジョニング、アイドルリソース、割引未適用、ストレージ階層の誤設定、ガバナンス欠如といった典型的なFinOps課題にフォーカスしています。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 12
- ファイル数: 13
- メインの言語: Python
主な特徴
- Neo4jベースのKnowledge Graphでクラウドリソース・コスト・ポリシーをモデル化
- Groq LLM(Llama3-70B)を用いたグラフ誘導型RAGでマルチホップ推論を実行
- Streamlitによる対話型ダッシュボードで探索と提案を可視化
- ツール連携によるコストシミュレーション(サイズ変更、コミット割引適用等)
技術的なポイント
このプロジェクトの肝は「Knowledge Graph」と「LLMエージェント」の協調です。従来のRAGはベクトルDBを使ったコンテキスト検索が主流ですが、本リポジトリはNeo4j上にクラウドリソース(インスタンス、ストレージ、サービス)、アカウント、コスト項目、ポリシー、運用イベントなどをノード/リレーションで表現します。グラフの利点は、直接的な隣接探索だけでなく複数ホップにまたがる因果関係(例:あるプロジェクト→属するVM群→それらのストレージ利用→課金パターン)を自然にたどれる点です。
エージェントはCypherクエリやグラフアルゴリズムを呼び出して関連ノードを収集し、その集合をLLMに渡して推論・説明文生成や意思決定支援を行います。これによりLLMのハルシネーションを抑え、根拠をグラフに紐づけた根拠付き提案が可能になります。さらに「ツールオーケストレーション」機能で、コスト試算モジュールや予約割引シミュレータ、リソース変更スクリプトに命令を送り、影響を定量的に評価して最適化案の期待値を算出します。
実装面では、PythonベースでNeo4jドライバやGroqのクライアントを使った連携、StreamlitでのUI層、エージェント制御ロジック(プロンプト設計・ツールAPIのラップ)からなる構成が想定されます。Knowledge GraphをRAGの検索層として使う設計は、FinOpsのような構造化されたドメイン知識で特に有効です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .python-version: file
- LICENSE: file
- README.md: file
- config.py: file
- data: dir
…他 8 ファイル(Streamlitアプリ、エージェント実装、Neo4j接続ラッパー、シミュレーションロジック等が含まれている想定)
まとめ
知識グラフとLLMを組み合わせた実践的なFinOpsプロトタイプ。拡張の余地が大きい実験的実装です。