BettaFish 舆情分析系统

前言

在信息爆炸的数字化时代,公众舆论的走向往往能决定一个品牌的命运、一个事件的结局,甚至影响整个社会的情绪走向。然而,面对海量的社交媒体数据、新闻评论、论坛讨论,如何准确捕捉公众的真实想法?如何打破信息茧房,全面了解舆情的真实面貌?如何预测舆情的发展趋势?

今天为大家深度解析一个GitHub上备受瞩目的开源项目 —— BettaFish(微舆),这个拥有 4.2K+ Stars 的项目,是一个从零实现的多Agent舆情分析助手,旨在打破信息茧房,还原舆情原貌,预测未来走向,辅助决策!

项目地址https://github.com/666ghj/BettaFish

项目概览

🌟 项目亮点

BettaFish(微舆) 是一个完全从零开始实现的多Agent舆情分析系统,最大的特色是不依赖任何框架,这意味着你可以完全理解每个组件的实现原理,并根据自己的需求进行定制化开发。

该项目的核心特色包括:

  • 🤖 多Agent架构:采用多Agent协同工作的方式,每个Agent专注于不同的分析任务
  • 📊 全方位分析:从数据采集、情感分析到深度洞察和报告生成,形成完整闭环
  • 🔄 灵活扩展:支持接入不同的LLM模型、情感分析模型和业务数据库
  • 📈 趋势预测:不仅分析当前舆情,还能预测未来走向(开发中)
  • 🛠️ 易于定制:从零实现的设计让系统完全可定制,适合各种业务场景

📊 项目数据

  • ⭐ Stars: 4.2K+
  • 🍴 Forks: 438
  • 👥 Contributors: 18+
  • 📝 主要语言: Python (93.9%) + HTML (5.2%)
  • 📄 License: GPL-2.0 许可证

技术架构深度解析

BettaFish 系统架构

🏗️ 核心引擎架构

BettaFish 采用模块化的多引擎架构,将复杂的舆情分析任务分解为多个专门的引擎:

graph TB
A[用户输入查询] --> B[ForumEngine
论坛数据采集] A --> C[MediaEngine
媒体数据采集] B --> D[InsightEngine
深度分析引擎] C --> D D --> E[ReportEngine
报告生成引擎] E --> F[舆情分析报告] D --> G[情感分析模块] D --> H[深度搜索Agent] D --> I[LLM分析引擎]

1. 📱 ForumEngine - 论坛数据采集引擎

功能定位:负责从各大论坛平台采集用户讨论数据

核心能力

  • 多平台数据采集(微博、知乎、豆瓣等)
  • 智能去重和数据清洗
  • 实时监控和定时采集

应用场景

  • 热点话题追踪
  • 用户评论分析
  • 社区舆情监控

2. 📰 MediaEngine - 媒体数据采集引擎

功能定位:从新闻媒体、社交平台采集媒体报道和官方信息

核心能力

  • 新闻文章采集
  • 官方声明监控
  • 媒体传播路径分析

应用场景

  • 媒体报道分析
  • 官方舆情监控
  • 信息传播路径追踪

3. 🔍 InsightEngine - 深度分析引擎

这是系统的”大脑”,负责将所有采集的数据进行深度分析和洞察。

核心组件

3.1 深度搜索Agent

graph LR
A[查询输入] --> B[多源搜索]
B --> C[数据聚合]
C --> D[相关性排序]
D --> E[深度分析]
E --> F[洞察输出]

3.2 情感分析模块
支持多种情感分析方法:

  • 多语言情感分析
  • 基于BERT的中文情感分析
  • GPT-2 LoRA微调模型
  • 传统机器学习方法(SVM等)

3.3 LLM分析引擎

  • 支持任意符合OpenAI调用格式的LLM提供商
  • 可灵活切换不同的模型(GPT、Claude、Qwen等)
  • 通过配置文件即可更换模型

4. 📝 ReportEngine - 报告生成引擎

功能定位:将分析结果转化为结构化的专业报告

核心能力

  • 支持自定义报告模板
  • 多种报告格式(Markdown、HTML、PDF等)
  • 智能选择最合适的模板

核心技术特性详解

1. 🤖 多Agent协同工作机制

传统的舆情分析系统通常是单线程处理,而 BettaFish 采用多Agent架构,每个Agent专注于自己擅长的领域:

sequenceDiagram
participant User as 用户
participant Forum as ForumEngine
participant Media as MediaEngine
participant Insight as InsightEngine
participant Report as ReportEngine
User->>Forum: 启动数据采集
User->>Media: 启动媒体监控
Forum->>Insight: 传输论坛数据
Media->>Insight: 传输媒体数据
Insight->>Insight: 深度分析处理
Insight->>Report: 传递分析结果
Report->>User: 生成最终报告

优势

  • 专业化分工:每个Agent只做自己最擅长的事
  • 并行处理:多个Agent可以同时工作,提高效率
  • 易于扩展:新增功能只需添加新的Agent
  • 故障隔离:单个Agent出问题不影响其他Agent

2. 🔌 灵活的LLM接入机制

BettaFish 支持接入任何符合OpenAI调用格式的LLM模型,这意味着你可以使用:

  • 商业API:OpenAI GPT、Claude、文心一言等
  • 开源模型:通过SiliconFlow等平台接入Qwen、LLaMA等
  • 本地部署:对接本地部署的大模型服务

接入示例

1
2
3
4
# config.py 中配置
OPENAI_API_KEY = "your_api_key"
OPENAI_BASE_URL = "https://api.siliconflow.cn/v1"
OPENAI_MODEL_NAME = "Qwen/Qwen2.5-72B-Instruct"

只需要修改配置文件,即可切换不同的模型,无需改动代码。

3. 💡 多维度情感分析

情感分析是舆情分析的核心,BettaFish 集成了多种情感分析方法:

方法一:多语言情感分析

适合处理中英文混合、多语言场景

方法二:基于BERT的中文微调

针对中文语境优化,准确率高

方法三:GPT-2 LoRA微调

轻量级模型,推理速度快

方法四:传统机器学习

使用SVM等传统方法,适合特定领域

你可以根据数据特点选择最合适的方法,也可以同时使用多种方法,综合判断。

4. 🗄️ 自定义业务数据库接入

BettaFish 不仅分析公开的网络数据,还支持接入你的业务数据库:

应用场景

  • 结合企业内部数据(客服记录、用户反馈等)
  • 融合CRM系统数据
  • 整合业务系统的历史数据

实现方式

1
2
3
4
5
6
7
8
9
# 创建自定义数据工具
class CustomBusinessDBTool:
def search_business_data(self, query: str):
# 查询业务数据
pass

def get_customer_feedback(self, product_id: str):
# 获取客户反馈
pass

实际应用场景

场景一:品牌舆情监控

需求:某品牌想要实时监控网络上关于自己产品的讨论

BettaFish解决方案

  1. ForumEngine 和 MediaEngine 自动采集相关讨论
  2. InsightEngine 进行情感分析,识别正面/负面/中性评价
  3. ReportEngine 生成日报/周报,包含关键发现和建议

场景二:危机公关预警

需求:提前发现潜在的舆情危机

BettaFish解决方案

  1. 监控关键词热度变化趋势
  2. 识别负面情感突然增加的情况
  3. 预测舆情扩散的可能性
  4. 及时生成预警报告

场景三:市场调研分析

需求:了解用户对某个新产品的真实想法

BettaFish解决方案

  1. 全面采集各平台的用户讨论
  2. 深度分析用户关注点和痛点
  3. 生成结构化的市场洞察报告

场景四:竞品分析

需求:对比分析不同品牌在用户心中的形象

BettaFish解决方案

  1. 同时采集多个竞品的讨论数据
  2. 使用相同的分析方法确保公平对比
  3. 生成对比分析报告

为什么选择BettaFish?

✅ 相比商业方案的优点

  1. 完全开源:代码透明,可完全掌控
  2. 无框架依赖:从零实现,易于理解和定制
  3. 成本可控:可以选择性价比更高的LLM服务
  4. 数据安全:可以本地部署,数据不出本地

✅ 相比其他开源方案的优点

  1. 架构清晰:多Agent设计,易于扩展
  2. 灵活性强:支持多种模型和数据库接入
  3. 实用性强:不仅有分析,还有报告生成
  4. 文档完善:GitHub上有详细的使用说明

快速开始指南

1. 环境准备

1
2
3
4
5
6
# 克隆项目
git clone https://github.com/666ghj/BettaFish.git
cd BettaFish

# 安装依赖
pip install -r requirements.txt

2. 配置LLM模型

编辑 config.py 文件,填入你的LLM配置:

1
2
3
OPENAI_API_KEY = "your_api_key"
OPENAI_BASE_URL = "https://api.siliconflow.cn/v1"
OPENAI_MODEL_NAME = "Qwen/Qwen2.5-72B-Instruct"

3. 选择情感分析模型

根据你的需求选择合适的情感分析模型:

1
2
3
4
5
6
7
# 使用多语言情感分析
cd SentimentAnalysisModel/WeiboMultilingualSentiment
python predict.py --text "This product is amazing!" --lang "en"

# 或使用BERT中文模型
cd SentimentAnalysisModel/WeiboSentiment_Finetuned/BertChinese-Lora
python predict.py --text "这个产品真的很不错"

4. 运行分析

1
2
3
4
5
# 启动Web界面
python app.py

# 或使用API接口
python api.py

未来发展规划

根据项目README,BettaFish 团队正在开发预测功能:

“目前我们经过很长一段时间的爬取收集,拥有了大量全网话题热度随时间、爆点等的变化趋势热度数据,已经具备了可以开发预测模型的条件。我们团队将运用时序模型、图神经网络、多模态融合等预测模型技术储备于此,实现真正基于数据驱动的舆情预测功能。”

这意味着未来 BettaFish 不仅能告诉你”现在怎么样”,还能告诉你”未来会怎样”,这对于决策支持来说价值巨大。

舆情分析预测

总结

BettaFish(微舆)是一个真正从零开始实现的多Agent舆情分析助手,它的出现为开源社区提供了一个优秀的舆情分析解决方案。无论是想要学习多Agent系统设计,还是需要搭建自己的舆情监控系统,BettaFish 都值得你深入了解。

核心优势总结

  1. 架构清晰:多引擎设计,职责分明
  2. 灵活扩展:支持多种模型和数据库接入
  3. 实用完整:从数据采集到报告生成的完整闭环
  4. 开源免费:GPL-2.0许可证,可自由使用和修改
  5. 持续发展:团队正在开发预测功能,未来更强大

如果你对舆情分析、多Agent系统、或者LLM应用开发感兴趣,不妨去GitHub上给这个项目点个Star,fork下来自己研究研究。相信通过阅读和运行这个项目,你会对多Agent系统设计有更深入的理解。


项目地址https://github.com/666ghj/BettaFish

License:GPL-2.0

⭐ 如果觉得有用,别忘了给项目点个Star!