666ghj/BettaFish

微舆:人人可用的多Agent舆情分析助手,打破信息茧房,还原舆情原貌,预测未来走向,辅助决策!从0实现,不依赖任何框架。

BettaFish – マルチエージェントソーシャルメディアインサイトプラットフォーム

何であるか – BettaFish はオープンソースで Python で構築されたシステムであり、Weibo、小紅書、TikTok など数十のソーシャルメディアプラットフォームからの公開意見を収集・分析・レポート化するための専門的な AI エージェントを統合しています。ユーザーはシンプルなチャット形式のクエリでシステムとやり取りし、プラットフォームはエージェントのパイプラインを実行します。データクロール、マルチモーダル(テキスト+画像+動画)分析、感情分析・トピックモデルの実行、最終的に洗練されたインタラクティブな HTML(または PDF/Markdown)レポートの生成を行います。


コアコンポーネント

エンジン 役割 主な業務
QueryEngine 広範囲検索エージェント LLM駆動のプロンプトを使用してウェブ検索を実行し、ニュースやコメントを取得し、初期の発見を要約します。
MediaEngine マルチモーダルエージェント 短い動画/音声、画像をダウンロード・分析し、検索結果から構造化されたカード(天気、株価、カレンダーなど)を抽出します。
InsightEngine プライベートデータ・ディープセンチメントエージェント ユーザー提供の PostgreSQL/MySQL ストアに接続し、キーワード最適化されたクエリを実行し、ファインチューニングされた感情分析(BERT-LoRA、Qwen-3 など)を実行します。
ReportEngine レポート生成エンジン エージェントの出力を収集し、Markdownテンプレートを選択し、チャプターの長さを計画し、JSONベースの中間表現(IR)を検証して、インタラクティブな HTML レポートをレンダリングします(WeasyPrint経由でPDFもオプション)。
ForumEngine エージェント協働ハブ 「フォーラム」を実装し、LLMホストのモデレーターが3つの分析エージェント間の議論を調整することで、反復的な精緻化を可能にし、単一モデルバイアスを回避します。
MindSpider クローリングサブシステム Playwright駆動のスパイダー群で、対応プラットフォームからトピック、コメント、動画を収集します。広範囲トピック抽出器とディープセンチメントクローラーを含みます。

動作方法(概要フロー)

  1. ユーザークエリ – Flaskエンドポイントが自然言語のリクエスト(例:"武漢大学の評判を分析してください")を受け取ります。
  2. 並列起動 – QueryEngine、MediaEngine、InsightEngine が同時に起動し、それぞれ独自のツールセットを使用します。
  3. 初期概要 – エージェントが迅速な検索を行い、簡潔な要約を返します。
  4. 戦略計画 – 概要に基づき、システムは問題をサブタスクに分割する方法を決定します。
  5. 反復的フォーラムループ – ForumEngine がエージェントを監視し、LLMモデレーターがより深い検索を促し、エージェントが互いの発見を検討し、停止条件が満たされるまでループを繰り返します。
  6. レポート構築 – ReportEngine がすべての中間結果を集約し、JSON IR を構築し、検証し、Markdownテンプレートを選択し、最終的な HTML(およびオプションの PDF/Markdown)をレンダリングします。

主な特徴

  • 10以上もの国内・国際プラットフォームで24時間AI駆動のクローリング。
  • ハイブリッド分析:LLMの推論、ファインチューニングされたセンチメントモデル、古典的な統計手法を組み合わせます。
  • マルチモーダル機能:短い動画、画像、構造化された検索エンジンカードを解析可能。
  • フォーラムスタイルのエージェント協働:議論を主導するLLMが複数のエージェントを導き、より豊かで均一性の低いインサイトを生み出します。
  • プライベートデータ統合:企業が内部データベースを公開意見と組み合わせられる安全な接続機能。
  • モジュール化・軽量なPython設計:各エンジンは個別のパッケージにあり、1つの設定変更でプロンプト・ツール・モデルを置き換え可能。
  • 1クリックDockerデプロイと、各エンジン用のオプションのStreamlitフロントエンド。
  • レポート生成:SVGチャートを含むインタラクティブなHTMLレポート、WeasyPrintによるPDFエクスポート、Markdownフォールバック。

セットアップ手順(Dockerクイックスタート)

# envテンプレートをコピーして認証情報を編集
cp .env.example .env
# すべてのサービスを起動(Flask + PostgreSQL + エージェント)
docker compose up -d
# その後UIを開く
open http://localhost:5000

開発時には、streamlit run SingleEngineApp/query_engine_streamlit_app.py のように各エンジンを個別にStreamlitで実行できます。


拡張性

  • プロンプトの交換*/prompts/ 内の任意のエージェントプロンプトファイルを変更することで、システムのターゲットをブランド評判から金融市場分析などに再設定可能。
  • モデルプラグイン – すべてのLLM呼び出しはOpenAI互換ラッパーを使用。*_ENGINE_BASE_URL 環境変数をAzure、Anthropic、または自己ホストモデルに設定可能。
  • カスタムツールtools/ ディレクトリに新しい検索またはメディア抽出ユーティリティを追加すると、エージェントが自動的に認識します。

ライセンスとコミュニティ

  • ライセンス: GPL-2.0(LICENSE を参照)。
  • 貢献ガイドライン: CONTRIBUTING.md に記載。
  • サポート: Inferera からのLLM-APIスポンサーシップ;Anspire Open(検索、ファイル解析、ブラウザ自動化)からの追加インフラストラクチャ。
  • デモとドキュメント: 武漢大学に関する完全実行レポートが final_reports/ に含まれており、READMEにウォークスルー動画のリンクあり。

TL;DR

BettaFish は、公開ソーシャルメディアデータをクロールし、マルチモーダルおよびセンチメントモデルを実行し、フォーラムメカニズムを通じてエージェントが議論し、インタラクティブなレポートを出力する完全機能のマルチエージェント意見分析エンジンです。Python、Flask、Dockerでオーケストレーションされ、Web UI経由でエンドユーザー向けに利用可能であり、他のドメイン向けにエージェントをカスタマイズしたい開発者にも最適です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト