AI市場モニタリング基盤の仕組み
公開向けの概説ページです。秘匿情報・認証情報・内部設定値は含みません。
最終更新: 2026-05-06 / 現行構成を反映済み
現行運用サマリー
polish 比較
Claude と Kimi を並行生成して比較
Slack通知
Kimi 文面を優先採用して運用観察中
補助比較
Gemini / MiMo / Qwen を補助枠として維持
現在は「要約の安定性は Claude」「公開文や通知の読みやすさは Kimi」を軸に、比較しながら最適化を進めています。
全体構成図
図は公開向け概念図です。実運用では Claude を要約主系、Kimi を polish / Slack通知優先候補として用い、
Gemini / MiMo を補助比較枠として運用しています。
システム概要
本システムは、金属相場・中東情勢・マクロ市場情報を自動収集し、複数のAIモデルを役割分担で利用しながら、
ニュース要約・分類・公開文整形・市況コメント生成を行い、WebダッシュボードおよびSlack通知として配信する
市場モニタリング運用基盤である。
主な目的は、毎日の市場監視を省力化しつつ、ニュース重要度の整理、相場との関連把握、短時間での状況判断支援を実現することである。
現在は Claude を要約主系、Kimi を polish / Slack通知向けの優先候補として活用し、Gemini や MiMo(OpenRouter) を補助比較枠として組み合わせている。
本基盤は QNAP NAS 上で運用され、Docker コンテナ内の Python スクリプト群によって定期処理を実行する。
生成された HTML、チャート画像、比較用JSONは FTP 経由で公開先へアップロードされ、外部ブラウザや Slack から参照される。
polish 比較
Claude と Kimi を並行生成
通知優先
Slack は Kimi 文面を優先活用
冗長化
Gemini / MiMo を補助比較枠として維持
システムの目的
- 金・銀・プラチナ・原油・為替・VIX・米国債利回りなどの市場情報を一画面で把握する
- 中東情勢や地政学ニュースが市場へ与える影響を素早く整理する
- AIを活用し、ニュース本文から要点、重要度、市場示唆、公開可否を抽出する
- 市況コメントを毎日自動生成し、監視業務を効率化する
- 複数AIモデルを比較・切替しながら、品質と安定性を継続改善する
- Slack通知と公開HTMLで、読みやすく具体的な市場ヘッドラインを配信する
全体アーキテクチャ
本システムは以下の要素で構成される。
- 実行基盤: QNAP NAS
- 実行環境: Docker コンテナ
geo-python
- データ取得: ニュース記事、金属価格、原油価格、USD/JPY、VIX、米国債利回り等のマクロ指標
- AI処理:
- OpenClaw - 処理オーケストレーション、接続制御、実行連携
- ChatGPT - 設計支援、改善提案、運用調整支援
- Claude - 要約主系
- Kimi - 公開文整形(polish)比較枠 / Slack通知優先
- Qwen - 補助分類、テーマ判定、補助コメント生成
- Gemini - 補助要約
- MiMo(OpenRouter) - 補助候補 / 比較用
- Merge / Compare - 要約統合、比較ファイル生成、provider切替
- 出力:
market-monitor.html、architecture.html、architecture-diagram.svg、各種チャート画像、比較JSON
- 公開: FTP アップロード、外部 Web サイト反映、Slack 通知
処理の流れは、
データ取得 → 前処理 → AI要約/統合 → 公開文整形/比較 → 市場スナップショット生成 → HTML/画像生成 → FTP公開 / Slack通知
という形で構成されている。
データ処理フロー
ニュース処理フロー
- ニュース記事を収集する
- タイトル、リード、本文、URL、ソース名などを前処理する
- 複数AIが以下を判定・生成する
category
subcategory
importance
summary_short
summary_medium
market_hint
tone
publish_decision
- Claude 主系の結果を中核としつつ、Gemini / MiMo などを補助比較し、統合済み要約を生成する
- Claude / Kimi による公開文整形を並行生成し、比較ファイルを作成する
- Slack通知や公開HTMLでは provider 切替ロジックに基づき文面を採用する
- 注目ニュース / その他ニュースの構成に合わせて HTML 化する
市場データ処理フロー
- 各種価格データを CSV または取得元から更新する
- 100日線、200日線、MA200乖離率などを計算する
- 個別チャート・コンバインドチャートを生成する
- 市場スナップショット JSON を生成する
- AI が市況コメントを生成する
- HTML テンプレートへ埋め込み、公開ページを生成する
- 朝・昼・夕の定時 Slack 通知へ要点を配信する
AI利用ポイント
オーケストレーション / 設計支援
OpenClaw はモデル呼び出しや処理連携を支える実行オーケストレーション層として位置づけている。
ChatGPT は設計支援、運用改善、比較方針の整理、障害切り分け支援などに活用している。
要約主系AI(Claude)
目的: ニュースの分類、重要度評価、要約文生成、市場示唆抽出、公開可否の判断
出力例: category, importance, summary_medium, market_hint, publish_decision
補助要約AI(Gemini / MiMo / OpenRouter)
目的: 主系要約の補助、比較、冗長化、フォールバック候補
備考: モデルごとに安定性差があるため、統合ロジックで採用可否を制御する
補助分類AI(Qwen)
目的: ニュースのカテゴリ分類、重要度補助判定、テーマ検知、短い補助コメント生成
出力例: category, secondary_categories, importance, dashboard_comment_ja, confidence
備考: 現在は本線要約ではなく、注目ニュース向けの補助整理レイヤーとして利用している
公開文整形AI(Claude / Kimi)
目的: 公開ページ向けの headline, summary, hint を自然な日本語へ整える
出力例: headline_public, summary_public, hint_public
市況コメント生成AI
目的: 当日の価格変動とニュース状況をまとめた短文・中文コメントを生成する
出力例: comment_short, comment_medium
Slack通知向け整形
目的: Slack 通知向けに、短く整理された具体的な見出しを生成・選定する
備考: 現在は Kimi 側文面を優先しつつ運用観察中
主要ファイル / スクリプト
HTML / UI生成
build_news_html.py - ダッシュボード HTML を生成する中心スクリプト
チャート生成
build_charts.py - 金・銀・プラチナ・原油・USD/JPY・VIX・シーズナリティー画像を生成
市場スナップショット生成
build_market_snapshot_from_csv.py - 日次変化率、MA200乖離率などを集計し JSON 化
ニュース要約
summarize_news_claude.py - 要約主系
summarize_news_gemini.py - 補助要約
summarize_news_mimo.py - 補助候補 / 比較用
merge_summaries.py - 要約統合、優先順位制御
公開文整形 / 比較
polish_news_claude.py - Claude による公開文整形
polish_news_kimi.py - Kimi による公開文整形
compare_polished_outputs.py - Claude / Kimi の比較JSON生成
通知・配信
send_slack_summary.sh - Slack向け要約通知を生成・送信
post_check_warning.sh - 要約品質の監視・注意通知
upload_market_monitor.sh - HTML と画像を FTP で公開先へアップロード
run_ai_pipeline.sh - 定期パイプライン本体
入出力データ仕様
AIへの入力
- ニュースタイトル
- リード文
- 本文
- ソース名
- URL
- 市場スナップショット
AIからの出力
category
subcategory
importance
summary_short
summary_medium
market_hint
tone
publish_decision
reason
中間データ
news_preprocessed.json
news_summarized.json
news_summarized_mimo.json
news_summarized_merged.json
news_polished.json
news_polished_kimi.json
news_polished_compare.json
market_snapshot.json
最終成果物
market-monitor.html
architecture.html
architecture-diagram.svg
metals_10y_combined.png
gold_10y.png
silver_10y.png
platinum_10y.png
oil_10y.png
usdjpy_10y.png
vix_10y.png
seasonality_panel.png
運用ルールとガードレール
- AI出力は市場整理の補助であり、投資助言ではない
- JSON構造異常時は採用しない
- 要約結果 0 件や異常件数時は安全側へ倒し、既存正常データ維持を優先する
- 空データで HTML を更新しない
- 503 / timeout / quota 問題 / 形式崩れ時は fallback または比較用結果を利用する
- 公開ページ更新前に最低件数チェックを行う
- 市況コメントは断定口調を避け、可能性ベースで表現する
- 要約品質監視は現在 Claude 主系の健全性を基準に行う
特に重要な保護は、異常データで中間JSONや本番HTMLを破壊しない という方針である。
モデル切替前提の設計方針
本基盤は、特定のAIベンダーやモデルに固定されないよう、役割分離と入出力整形を重視している。
- 要約、整形、市況コメント生成、通知向け文面を分離する
- モデルごとの差し替えを容易にする
- JSON出力フォーマットを揃える
- fallback 可能な構造を保つ
- OpenAI / Claude / Gemini / Kimi / 中国系AI などを比較可能にする
- provider 切替で Slack / HTML の採用文面を変えられる構造を維持する
中国系AIを評価するための観点
使い勝手
- 日本語要約の自然さ
- 金融・地政学ニュースの理解力
- JSON出力の安定性
- APIレスポンス速度
- 実装容易性
- コスト効率
- timeout / quota / レート制限耐性
安全性
- 入力データの取り扱い
- 外部送信するニュース本文の範囲
- 保存・再学習への利用ポリシー
- 利用規約の明確さ
- 商用運用における安心感
- 中国関連・中東関連ニュースにおけるバイアス有無
- 政治・地政学トピックでの情報欠落や表現偏り
システム適合性
- 既存JSONスキーマに合わせやすいか
- fallbackしやすいか
- 既存Pythonスクリプトに組み込みやすいか
- 安定運用時の障害切り分けが容易か
- 公開HTML / Slack通知の両方へ適用しやすいか
変更履歴(要約)
- 2026-05 - 要約主系を Claude 中心へ整理し、安定運用を優先
- 2026-05 - Kimi を公開文整形(polish)比較枠として追加
- 2026-05 - Slack通知は Kimi 文面優先で比較運用を開始
- 2026-05 - Claude / Kimi 比較用
news_polished_compare.json を追加
- 2026-05 -
architecture.html / architecture-diagram.svg を現行構成に合わせて更新
- 2026-05 - Qwen を補助分類 / 補助コメント用途で再導入し、注目ニュース補足に反映
詳細な変更は運用スクリプト・ログ・比較JSONで追跡し、本ページでは公開可能な範囲に絞って要約表示しています。
現在の課題
- MiMo は JSON 出力の安定性に課題があり、比較用・補助候補の位置づけである
- モデルによって日本語の自然さと具体性に差がある
- 要約件数が少ない日は、注目ニュース構成の見栄えが不安定になることがある
- ニュースソース別・カテゴリ別バランス調整は今後の改善余地がある
- Kimi は polish で有望だが、引き続き数日単位の比較観察が必要
- 比較ログを継続蓄積し、採用判断を定量化する余地がある
- Qwen は補助用途では有望だが、分類品質とコメントの安定性を継続観察する必要がある
今後の改善予定
- polish の Kimi 主系切替判断
- ニュース件数が少ない日の表示最適化
- AIモデル比較ログの蓄積と見える化
- 複数モデルの A/B 比較継続
- JSON品質チェックの強化
- 公開前バリデーションの自動化
- Slack と HTML の provider 切替運用の洗練
引き継ぎメモ
- AIはニュース要約・分類・整形・市況コメント生成・Slack通知向け見出し整理に使っている
- 最重要要件は JSON 出力の安定性と本番破壊防止である
- 地政学・金融ニュースでの偏りは必ず検証する
- 503 / timeout / 形式崩れ時の fallback を前提にする
- 空データで本番HTMLを更新しない
- Kimi は polish と Slack 見出しで有望、Claude は要約主系として安定
- 中国系AI評価は、性能だけでなくデータ取り扱いとバイアスを含めて行う