Claudeで作る資産分析システム~モジュール構成とシンプル版の作成〜
はじめに
こんにちは
前回の記事では、資産分析システムのコード作成はモジュール化したJavaScriptで進めることになったとお伝えしました。前回の記事はこちら
今回はそのモジュール構成について検討していきます。
いつも通り、Claudeにモジュール化するシステムをどのように構成すれば良いか確認しつつ進めていきましょう。
モジュール構成案
いつも通り、Claudeにモジュール化するシステムをどのような構成にすれば良いか相談してみました。
Claudeから回答のあったシステム構成は以下の通りです
1.モジュール化された構造
DataLoader《データローダー》:CSVファイルの読み込みと前処理を担当
PortfolioAnalyzer《ポートフォリオアナライザー》:ポートフォリオ分析の計算を実行
VisualizationHandler《ビジュアライゼーションハンドラー》:分析結果の可視化を担当
PortfolioAnalysisSystem《ポートフォリオアナリシスシステム》:全体のワークフローを管理
2.主要な機能
CSVファイルの読み込みと解析(Papaparse使用)
基本的な投資指標の計算(リターン、リスク、シャープレシオ)
最適なポートフォリオ配分の計算
Rechartsを使用した可視化コンポーネントの生成
3.エラーハンドリング
各段階でのエラー捕捉と適切なエラーメッセージの出力
Claudeから上記の回答がありましたが、いろいろ調整しつつ各モジュールを以前に作成したcode作成プロンプトを使用しシステム作成を進めていきます。
実装したモジュールの概要
いろいろ試行錯誤しつつ、各モジュールを作成してきたのですが今のところ以下の構成にまとまりました。
CSV Parser Component
CSVファイルの読み込みと前処理を担当
Analysis Guide Dashboard
分析機能のナビゲーションハブ
Investment Dashboard
分析結果の統合表示
Analysis Suggestions Component
分析提案の生成と管理
各モジュールの役割と実行内容
構成がまとまってきたところで、各モジュールについてClaudeに詳細な役割と実行内容を確認してみることにしました。
Claudeの回答は以下の通りです。
投資分析システムのファイル関係図
*pablishedしたartifactのリンク先になります
1. CSV Parser Component
主要な役割:データ処理の基盤機能提供
実行内容:
CSVファイルの読み込みと解析
データ型の自動推論と検証
エラーと警告の検出
データの前処理と変換
統計情報の生成
分析準備データの作成
2. Analysis Guide Dashboard
主要な役割:分析機能のナビゲーションハブ
実行内容:
主要分析カテゴリーの管理と表示
分析機能へのアクセス提供
ユーザーインターフェースの提供
分析コマンドのガイド表示
3. Investment Dashboard
主要な役割:分析結果の統合表示
実行内容:
分析データの可視化
リアルタイムデータ更新
フィルタリング機能
メトリクスパネルの表示
対話型グラフの提供
4. Analysis Suggestions Component
主要な役割:分析提案の生成と管理 実行内容:
データに基づく提案生成
優先度による提案の分類
カテゴリー別フィルタリング
アクション推奨の提供
影響度の計算と表示
ガイド機能の実装
モジュール作成を進める中で、作成している本人はテストする中で資産配分の分析ができるなど機能が分かってくるのですが、資産分析というのは専門用語も多くchatにどんな用語を入れて分析を実行すれば良いか分からない・・という懸念がでてきました。
そこで、初心者向けのガイド機能を「Analysis Guide Dashboard」で実装することにしました。
具体的には、チャットに以下のキーワードを入力すると、分析ツールの機能一覧がアーティファクトに表示されるようにしました。
*特定キーワードは投資分析ガイドの表示を実行させるもので、表示される内容は同一です
表示されるのは機能を限定したシンプル版です。総合版は別途調整中です。
"ツールガイド", "分析ツール", "ツール一覧", "機能一覧", "ヘルプ"
まとめと今後の展望
Claudeとの対話を重ねながら、資産分析システムのモジュール構成案がまとまってきました。各モジュールの役割と実行内容も明確になり、初心者にも使いやすいガイド機能の実装もできました。
次回からは、実際にテストデータを使用して分析機能のテスト作業を進めていきます。
システムの使い勝手を検証し、必要に応じて改良を加えていく予定です。
将来的には、より高度な分析機能の実装も目指していきたいと考えています。
やっと少し分析システムの形がまとまってきました・・
自分の実現したいことをAIが理解できる内容で言語化するのが難しく、何度もClaudeに質問しながら、「1歩進んで2歩下がる」を字のごとく進める毎日です。
*Claudeは優秀なAIだと感じていますが、勝手に以前に出力したcodeを削除した内容で出力されたり、Claudeが出力した内容(codeの構成や修正箇所)を人間側が理解できる前提で出力してくるので、再度Claudeに出力してきた内容はcodeのどこの位置の何を言っているのか?と再質問して何とかついていけるという状況で、ド素人にはなかなか難易度が高いところもあるというのが正直な感想です