666ghj/BettaFish

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

BettaFish – 多代理社交媒體洞察平台

是什麼 – BettaFish 是一個開源、基於 Python 的系統,將多個專用 AI 代理整合,從數十個社交媒體平台(微博、小紅書、TikTok 等)收集、分析並報告公眾意見。使用者透過簡單的聊天式查詢與系統互動;平台隨後執行一連串代理的流程,進行資料爬取、多模態(文字+圖片+影片)分析、情感與主題模型運算,並最終生成精緻的互動式 HTML(或 PDF/Markdown)報告。


核心元件

引擎 角色 主要職責
QueryEngine 廣泛搜尋代理 使用 LLM 驅動的提示發起網路搜尋,取得新聞與評論,並總結初步發現。
MediaEngine 多模態代理 下載並分析短影片/音訊、圖片,並從搜尋結果中提取結構化卡片(天氣、股票、日曆等)。
InsightEngine 私有資料與深度情感代理 連接使用者提供的 PostgreSQL/MySQL 儲存,執行關鍵字優化查詢,進行微調情感分析(BERT-LoRA、Qwen-3 等)。
ReportEngine 報告生成器 收集代理的輸出,選擇 Markdown 模板,規劃章節長度,驗證基於 JSON 的中間表示(IR),並渲染互動式 HTML 報告(PDF 可透過 WeasyPrint 選配)。
ForumEngine 代理協作中心 實作「論壇」機制,由 LLM 主持的調解員協調三個分析代理之間的辯論,實現迭代優化並避免單一模型偏見。
MindSpider 爬取子系統 一組基於 Playwright 的爬蟲,從支援的平台中擷取主題、評論與影片;包含廣義主題萃取器與深度情感爬蟲。

作業流程(高階流程)

  1. 使用者查詢 – Flask 端點接收自然語言請求(例如:「分析武漢大學的聲譽」)。
  2. 並行啟動 – QueryEngine、MediaEngine 與 InsightEngine 同時啟動,各自使用獨立工具集。
  3. 初步概覽 – 代理執行快速搜尋並返回簡潔摘要。
  4. 策略規劃 – 基於概覽,系統決定如何將問題拆解為子任務。
  5. 迭代式論壇迴圈 – ForumEngine 監控代理,LLM 調解員提示更深入搜尋,代理反思彼此發現,迴圈重複直至滿足停止條件。
  6. 報告組裝 – ReportEngine 收集所有中間結果,建構 JSON IR,驗證,選擇 Markdown 模板,並渲染最終 HTML(可選 PDF/Markdown)。

主要特色

  • 跨 10+ 國內外平台的 AI 驅動 24/7 爬取。
  • 混合分析:結合 LLM 推理、微調情感模型與傳統統計方法。
  • 多模態能力 – 解析短影片、圖片與結構化搜尋引擎卡片。
  • 論壇式代理協作 – 由辯論主導的 LLM 引導多個代理,產出更豐富、更少同質化的洞察。
  • 私有資料整合 – 安全連接器讓企業能將內部資料庫與公開意見融合。
  • 模組化、輕量級 Python 設計 – 每個引擎獨立封裝為套件;開發者可透過單一設定變更替換提示、工具或模型。
  • 一鍵 Docker 部署及各引擎可選 Streamlit 前端。
  • 報告生成 – 包含 SVG 圖表的互動式 HTML 報告,透過 WeasyPrint 可選導出 PDF,Markdown 作為降級方案。

快速入門(Docker 快速啟動)

# 複製環境範本並編輯憑證
cp .env.example .env
# 啟動所有服務(Flask + PostgreSQL + 代理)
docker compose up -d
# 然後開啟 UI
open http://localhost:5000

開發時可使用 Streamlit 個別執行各引擎,例如 streamlit run SingleEngineApp/query_engine_streamlit_app.py


可擴充性

  • 提示交換 – 修改 */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)使用,也適合希望將代理客製化至其他領域的開發者。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案