多功能舆情分析工具BettaFish

简介

什么是 BettaFish?

BettaFish(微舆)是一个创新的多智能体舆情分析系统,旨在帮助用户打破信息茧房,还原舆情原貌,预测未来走向,并辅助决策。用户可以通过聊天方式提出分析需求,系统将自动分析国内外30多个主流社交媒体和数百万条评论。

主要特点

  • AI驱动的全域监控AI 爬虫集群 24/7 不间断工作,全面覆盖微博、小红书、抖音、快手等 10+ 国内外关键社交媒体,实时捕获热点内容并深入分析用户评论。
  • 超越LLM的复合分析引擎:结合 5 类专业 Agent、微调模型和统计模型,确保分析结果的深度、准确性和多维视角。
  • 强大的多模态能力:能够深度解析短视频内容,并从现代搜索引擎中提取结构化多模态信息卡片(如天气、日历、股票)。
  • Agent“论坛”协作机制:通过引入辩论主持人模型,使不同 Agent 进行链式思维碰撞与辩论,避免单一模型局限性,催生高质量的集体智能。
  • 公私域数据无缝融合:提供高安全性接口,支持内部业务数据库与舆情数据无缝集成,为垂直业务提供“外部趋势+内部洞察”的分析能力。
  • 轻量化与高扩展性框架:基于纯 Python 模块化设计,实现轻量化、一键式部署,代码结构清晰,易于集成自定义模型和业务逻辑。

应用场景

  • 品牌声誉管理:实时监控品牌在各大社交媒体的口碑和用户反馈,及时发现负面舆情并进行干预。
  • 市场趋势分析:通过分析海量用户数据,洞察行业最新动态、消费者偏好和新兴市场机会。
  • 社会热点追踪:对社会热点事件进行多维度、深层次的分析,全面了解事件的来龙去脉和舆论走向。
  • 竞品分析:监控竞争对手的产品动态、营销活动和用户评价,为自身决策提供参考。

BettaFish 是一个多功能的舆情分析工具,适用于各类用户,特别是在信息分析和决策支持方面提供了强大的能力

准备

需要准备几个 API Key 才能完成整个报告的生成

Tavily API

Tavily 是专为大型语言模型(LLM)和 AI 代理设计的专用搜索引擎

注册地址

https://app.tavily.com/home

注册成功后,每个月有 1000 Credits

Bocha Web Search API

博查(Bocha) 则是基于多模态混合搜索与语义排序技术的新一代搜索引擎,支持 AI 应用场景的自然语言搜索方式,同时搜索结果目标是提供干净、准确、高质量的答案

注册地址

https://open.bochaai.com/api-keys

新注册的用户可以领取 1 个免费 1000 次调用资源包。开放平台 “首页” –> 点击 “购买资源包”,购买 “免费试用” 资源包即可

这个 API Key 如果不设置,会导致 Media Agent 没有结果

直接影响 Report Agent 最终报告的生成

大模型 API

目前硅基流动(SiliconFlow),注册就送 2000Tokens,虽然不是免费,但也够用一阵子的

注册地址:

https://cloud.siliconflow.cn/i/NkUiXVhQ

安装

在群晖上以 Docker 方式安装。采用 docker-compose 进行部署

env.txt

基于官方的 https://github.com/666ghj/BettaFish/blob/main/.env.example 修改的一个示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# ====================== BETTAFISH 相关 ======================
# BETTAFISH 主机地址,例如:0.0.0.0 或 127.0.0.1
HOST=0.0.0.0
# BETTAFISH 主机地址,默认为5000
PORT=5000

# ====================== 数据库配置 ======================
# 数据库主机,例如localhost 或 127.0.0.1
DB_HOST=db
# 数据库端口号,默认为3306
DB_PORT=5432
# 数据库用户名
DB_USER=bettafish
# 数据库密码
DB_PASSWORD=bettafish
# 数据库名称
DB_NAME=bettafish
# 数据库字符集,推荐utf8mb4,兼容emoji
DB_CHARSET=utf8mb4
# 数据库类型mysql或postgresql
DB_DIALECT=postgresql

# ======================= LLM 相关 =======================
# 我们的LLM模型API赞助商有:https://share.302.ai/P66Qe3、https://aihubmix.com/?aff=8Ds9,提供了非常全面的模型api

# Insight Agent(推荐Kimi,https://platform.moonshot.cn/)API密钥,用于主LLM
INSIGHT_ENGINE_API_KEY=<你的硅基流动的 api key>
# Insight Agent LLM接口BaseUrl,可自定义厂商API
INSIGHT_ENGINE_BASE_URL=https://api.siliconflow.cn/v1
# Insight Agent LLM模型名称,如kimi-k2-0711-preview
INSIGHT_ENGINE_MODEL_NAME=moonshotai/Kimi-K2-Instruct-0905

# Media Agent(推荐Gemini,推荐中转厂商 https://aihubmix.com/?aff=8Ds9)API密钥
MEDIA_ENGINE_API_KEY=<你的硅基流动的 api key>
# Media Agent LLM接口BaseUrl
MEDIA_ENGINE_BASE_URL=https://api.siliconflow.cn/v1
# Media Agent LLM模型名称,如gemini-2.5-pro
MEDIA_ENGINE_MODEL_NAME=deepseek-ai/DeepSeek-V3.2-Exp

# MindSpider Agent API密钥(推荐Deepseek)
MINDSPIDER_API_KEY=<你的硅基流动的 api key>
# MindSpider LLM接口BaseUrl
MINDSPIDER_BASE_URL=https://api.siliconflow.cn/v1
# MindSpider LLM模型名称,如deepseek-chat
MINDSPIDER_MODEL_NAME=deepseek-ai/DeepSeek-V3.2-Exp

# Query Agent(推荐DeepSeek,https://www.deepseek.com/)API密钥
QUERY_ENGINE_API_KEY=<你的硅基流动的 api key>
# Query Agent LLM接口BaseUrl
QUERY_ENGINE_BASE_URL=https://api.siliconflow.cn/v1
# Query Agent LLM模型,如deepseek-reasoner
QUERY_ENGINE_MODEL_NAME=deepseek-ai/DeepSeek-V3.2-Exp

# Report Agent(推荐Gemini,推荐中转厂商 https://aihubmix.com/?aff=8Ds9)API密钥
REPORT_ENGINE_API_KEY=<你的硅基流动的 api key>
# Report Agent LLM接口BaseUrl
REPORT_ENGINE_BASE_URL=https://api.siliconflow.cn/v1
# Report Agent LLM模型,如gemini-2.5-pro
REPORT_ENGINE_MODEL_NAME=deepseek-ai/DeepSeek-V3.2-Exp

# Forum Host LLM API密钥,Qwen3最新模型,推荐 https://cloud.siliconflow.cn/
FORUM_HOST_API_KEY=<你的硅基流动的 api key>
# Forum Host LLM BaseUrl
FORUM_HOST_BASE_URL=https://api.siliconflow.cn/v1
# Forum Host LLM模型名,如Qwen/Qwen3-235B-A22B-Instruct-2507
FORUM_HOST_MODEL_NAME=Qwen/Qwen3-235B-A22B-Instruct-2507

# SQL Keyword Optimizer LLM密钥,小参数Qwen3模型 https://cloud.siliconflow.cn/
KEYWORD_OPTIMIZER_API_KEY=<你的硅基流动的 api key>
# Keyword Optimizer BaseUrl
KEYWORD_OPTIMIZER_BASE_URL=https://api.siliconflow.cn/v1
# Keyword Optimizer LLM模型名称,如deepseek-chat
KEYWORD_OPTIMIZER_MODEL_NAME=deepseek-ai/DeepSeek-V3.2-Exp

# ================== 网络工具配置 ====================
# Tavily API密钥,用于Tavily网络搜索。注册地址:https://www.tavily.com/
TAVILY_API_KEY=<你的 Tavily 的 api key>
# Bocha Web/AI Search BASEURL,用于Bocha搜索。注册地址:https://open.bochaai.com/
BOCHA_BASE_URL=https://api.bochaai.com/v1/web-search
# Bocha Web Search API密钥,用于Bocha搜索。注册地址:https://open.bochaai.com/
BOCHA_WEB_SEARCH_API_KEY=<你的 Bocha 的 api key>

保存时记得采用 UTF-8 编码格式

docker-compose.yml

在官方的 https://github.com/666ghj/BettaFish/blob/main/docker-compose.yml 基础上做了微调

如果 ghcr.io/666ghj/bettafish:latest 下载不成功,可以试试用 ghcr.nju.edu.cn/666ghj/bettafish:latest

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: "3.9"

services:
bettafish:
image: ghcr.io/666ghj/bettafish:latest
# Speed up mirror
# image: ghcr.nju.edu.cn/666ghj/bettafish:latest
container_name: bettafish
restart: unless-stopped
env_file:
- env.txt
environment:
- PYTHONUNBUFFERED=1
- STREAMLIT_SERVER_ENABLE_FILE_WATCHER=false
ports:
- "8504:5000"
- "8501:8501"
- "8502:8502"
- "8503:8503"
volumes:
- ./logs:/app/logs
- ./final_reports:/app/final_reports
- ./insight_engine_streamlit_reports:/app/insight_engine_streamlit_reports
- ./media_engine_streamlit_reports:/app/media_engine_streamlit_reports
- ./query_engine_streamlit_reports:/app/query_engine_streamlit_reports

db:
image: postgres:15
container_name: bettafish-db
restart: unless-stopped
environment:
POSTGRES_USER: bettafish
POSTGRES_PASSWORD: bettafish
POSTGRES_DB: bettafish
# ports:
# - "5432:5432"
volumes:
- ./db_data:/var/lib/postgresql/data

其中:

  • Insight Engine: http://<群晖IP>:8501
  • Media Engine: http://<群晖IP>:8502
  • Query Agent: http://<群晖IP>:8503
  • 主应用: http://<群晖IP>:8504

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 bettafish 和 子目录
mkdir -p /volume1/docker/bettafish/{db_data,final_reports,insight_engine_streamlit_reports,logs,media_engine_streamlit_reports,query_engine_streamlit_reports}

# 进入 bettafish 目录
cd /volume1/docker/bettafish

# 将 docker-compose.yml 和 env.txt 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8504 就能看到主界面,如果设置没问题,可以直接点 保存并启动系统

提示系统启动成功后,就可以输入需要分析的内容,开始 搜索 之后,会看到 Insight Agent 开始工作了

Media Agent 也开始了

Query Agent 开始搜索精准信息搜索

Forum Engine 基于前面三个 Agent 的结果

这个过程会比较长

可能会遇到网络或其他问题导致的错误

只有前三个 Agent 完成后,才可以点 Report Agent 开始生成最终的报告

接下来就是等待报告完成

生成的报告,可以在 final_reports 中找到

参考文档

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