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駆動のスパイダー群で、対応プラットフォームからトピック、コメント、動画を収集します。広範囲トピック抽出器とディープセンチメントクローラーを含みます。 |
動作方法(概要フロー)
- ユーザークエリ – Flaskエンドポイントが自然言語のリクエスト(例:"武漢大学の評判を分析してください")を受け取ります。
- 並列起動 – QueryEngine、MediaEngine、InsightEngine が同時に起動し、それぞれ独自のツールセットを使用します。
- 初期概要 – エージェントが迅速な検索を行い、簡潔な要約を返します。
- 戦略計画 – 概要に基づき、システムは問題をサブタスクに分割する方法を決定します。
- 反復的フォーラムループ – ForumEngine がエージェントを監視し、LLMモデレーターがより深い検索を促し、エージェントが互いの発見を検討し、停止条件が満たされるまでループを繰り返します。
- レポート構築 – 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経由でエンドユーザー向けに利用可能であり、他のドメイン向けにエージェントをカスタマイズしたい開発者にも最適です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト