侧边栏壁纸
博主头像
阿程 博主等级

行动起来,活在当下

  • 累计撰写 63 篇文章
  • 累计创建 13 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

2026 开年首篇 | 在云服务器/NAS上搭建一个舆情分析系统:BettaFish

一、前言

2025年感谢、感激、感恩😎各位读者又关注了一年。我大概数了一下,2025 年阿程为大家一共带来了21篇文章,涵盖容器应用类、路由固件类、终端类,由于去年上半年和下半年都有考试,因此更新的频率并不算快,但我还是尽量保证自己先搭建验证过,再进行分享,今年我也会继续努力,追赶同行。那么这2026年的第一篇,我打算给大家带来一个功能性强但部署较复杂的舆情分析容器——BettaFish。

码字不易,喜欢我的教程欢迎各位多提建议多评论,畅所欲言,涉及破解、打倒美帝走近科学和资源分享的教程容易被和谐,也欢迎各位关注我的公众号和博客,以防走丢。

公众号:攻城狮阿程

知乎:攻城狮阿程

小红书:南星北月

个人博客:strider1230.cn

淘宝:阿程数码

抖音:南星北月

B站:-南星北月-

1.1 软件介绍

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

1.2 软件特点

BettaFish 主要有以下 6 个特色,整体架构如下图:

  • AI驱动的全域监控AI 爬虫集群 24/7 不间断工作,全面覆盖微博、小红书、抖音、快手等 10+ 国内外关键社交媒体,实时捕获热点内容并深入分析用户评论。

  • 超越LLM的复合分析引擎:结合 5 类专业 Agent、微调模型和统计模型,确保分析结果的深度、准确性和多维视角。

  • 强大的多模态能力:能够深度解析短视频内容,并从现代搜索引擎中提取结构化多模态信息卡片(如天气、日历、股票)。

  • Agent“论坛”协作机制:通过引入辩论主持人模型,使不同 Agent 进行链式思维碰撞与辩论,避免单一模型局限性,催生高质量的集体智能。

  • 公私域数据无缝融合:提供高安全性接口,支持内部业务数据库与舆情数据无缝集成,为垂直业务提供“外部趋势+内部洞察”的分析能力。

  • 轻量化与高扩展性框架:基于纯 Python 模块化设计,实现轻量化、一键式部署,代码结构清晰,易于集成自定义模型和业务逻辑。

framework.png

1.3 适用人群

  • 自媒体工作者:非常适合于摊子已经比较大的或者是写作内容属于刀尖上跳舞的自媒体工作者,通过舆情分析可以较好的掌握互联网上的正负面情绪声浪,防止因出言不慎而失去宝贵账号。

  • 科研工作者:适合于人文社科类方向的科研人员针对社会当下的热点问题进行溯源和分析,为后续研究做好准备。

  • 想搞清楚一个事件原委的吃瓜群众:适合于曾关注过某一感兴趣的热点信息,但一段时间没有跟进中间过程,导致最后即使知道结果但仍然想了解事件全貌的人。

1.4 应用场景

  • 品牌声誉管理:实时监控品牌在各大社交媒体的口碑和用户反馈,及时发现负面舆情并进行干预。

  • 市场趋势分析:通过分析海量用户数据,洞察行业最新动态、消费者偏好和新兴市场机会。

  • 社会热点追踪:对社会热点事件进行多维度、深层次的分析,全面了解事件的来龙去脉和舆论走向。

  • 竞品分析:监控竞争对手的产品动态、营销活动和用户评价,为自身决策提供参考。

1.5 部署前的准备工作

1.5.1 云服务器用户

1️⃣ 部署前最重要的是你得有一个云服务器,这里阿程更推荐自己一直在使用的云服务器提供商:雨云,如果你想了解雨云云服务器的相关信息并选购,可以点击此链接:https://www.rainyun.com/NzAwMjY4_

image-3.png

2️⃣ 云服务器配置选购首先依次点击云产品-立即购买,跳转到云服务器购买页面。

image-4.png

3️⃣ 在购买页面中,按下图所示选择适合你自身的云服务器产品,这里更推荐中国内地、香港、日本东京的服务器。

image-1-UJjP.png

4️⃣ 云服务器套餐选择方面,这里更推荐箭头所指的四个配置,其中强烈推荐KVM高配版、顶配版和旗舰版来跑BettaFish,因为服务器的处理器数量会影响最终报告的生成速度,不跑BettaFish时服务器空余出来的性能也可以跑其他容器服务。选择好云服务器后根据实际情况选择购买时长,然后就可以付款啦,但是付款前可能还需要绑定你的邮箱或者手机,完成实名认证。

image-5.png

5️⃣ 公网IP配置及系统和软件安装选项,这里建议大家按下图进行选择Ubuntu 24.04 LTS系统,公网IP默认设置即可。

image-6.png

6️⃣ 等待服务器系统自动安装完毕后就可以输入服务器账户和连接密码SSH登陆安装1Panel前端面板啦,这里需要注意的是不像阿里云和腾讯云的防火墙需要手动配置策略放行相应IP和端口,雨云的防火墙是默认放行所有IP和端口的。

image-2.png
1.5.2 NAS 用户
1.5.2.1 部署容器前你可能需要一块固态硬盘

我教程内展示的容器都是配置在固态硬盘上的,建议想多搭容器及虚拟机的朋友在执行教程前先准备一块固态硬盘,容器、虚拟机安装在固态硬盘的好处如下:

  • 不会干扰机械硬盘的休眠,使得机械硬盘始终扮演数据保存的角色

  • 部署在固态硬盘内的容器、虚拟机调用以及响应的速度都比机械硬盘好

  • 容器若发生泄漏,不会污染、破坏你的机械硬盘内的数据

1.5.2.2 M.2接口 SSD 固态硬盘的适配

以极空间为例,Z4系列的M.2接口支持高速存储只读缓存等功能,如果是在固态硬盘内部署虚拟机、容器服务等,需要选择高速存储功能;

  • 仅支持M.2接口 NVMe 2280 的SSD固态硬盘,其中2280指的是长度;

  • 官方说由于PCIe4.0自身的兼容性问题,极空间暂时不支持PCIe4.0的SSD,但是实验下来是支持PCIe4.0的固态的,只是安装上去以后该固态硬盘的温度会比PCIe3.0的固态硬盘高10℃左右,因此买的时候要还是建议选择PCIe3.0的SSD,但由于PCIe3.0的固态硬盘几乎均已停产,所以还是老老实实去买PCIe4.0的固态硬盘吧,虽然现在内存和固态硬盘价格已经涨得看不懂了但是刚需的话还得买啊……

  • 设置只读缓存时,Z4系列8G-16G内存的产品建议选购256G容量;16G及以上内存的产品建议选购512G容量;(PS:极空间Z4Pro 是支持单根 DDR5 64G 4800MHz的笔记本电脑内存哦)

  • 设置高速存储时,SSD不得小于32GB,最大支持4T;

  • 建议选购大品牌的SSD,这里推荐:梵想或者致钛TiPlus7000 1TB/2TB,京东和淘宝上都有货源

* 请选择耐用 SSD。由于 SSD 的寿命受限于有限的写入次数,请确保使用耐用性更高的 SSD,以防止潜在风险。

1.6 应用截图

部署成功,四个引擎正常加载的画面:

PixPin_2025-12-31_17-31-34.png

开始分析,各引擎开始工作的画面:

分析完成,产出报告的画面:

image-7.png

二、部署 BettaFish 容器

官方推荐使用 docker-compose 进行安装。因此我将分别以雨云☁️云服务器和极空间 NAS 上的 Ubuntu 虚拟机为例进行部署。推荐使用 docker-compose 进行安装。

2.1 准备大模型API

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

2.1.1 Tavily API

Tavily 是专为大型语言模型(LLM)和 AI 代理设计的专用搜索引擎,注册成功后,每个月有 1000 Credits,另外完成认证并分享你的证书(如下图),还可以获得额外的 5000 Credits。注册链接:https://app.tavily.com/home

image-8.png
certificate.png
2.1.2 Bocha Web Search API

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

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

这个 API Key如果不设置,会导致 Media Agent没有结果,并且直接影响 Report Agent 最终报告的生成。

PixPin_2026-01-06_00-42-20.png
2.1.3 硅基流动 API

目前硅基流动(SiliconFlow),注册就送 2000 万 Tokens,虽然不是免费,但也够用一阵子的,大家可以扫描下方二维码或者点击这个链接注册领取:https://cloud.siliconflow.cn/i/d7xKOc2f

2.2 云服务器部署

1️⃣ 安装好 Ubuntu 服务端系统后,点击雨云服务器管理页面的远程连接(VNC)按钮登录 Ubuntu 服务端系统,安装curlssh功能包,依次执行下面的安装命令即可:

sudo apt update
sudo apt install curl
sudo apt install ssh

2️⃣ 安装好上述功能包后,执行如下命令安装 1Panel V2 面板,耐心等待脚本跑完:

sudo bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

3️⃣ 安装完毕后即可在电脑浏览器中输入虚拟机IP➕设置好的 1Panel 面板端口号打开 1Panel V2 面板了,需要注意的是雨云服务器防火墙默认是放行所有端口的,如果你是购买的其他平台的服务器,请自行判断是否需要配置相应防火墙策略放行 IP 和端口。

4️⃣ 在雨云云服务器安装并设置好 1Panel V2 面板后,首先来配置 compose 文件,依次点击左侧边栏的容器-编排-创建编排,然后将下图所示的部署代码填入。

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

    ports:
      - "8504:5000"
      - "8501:8501"
      - "8502:8502"
      - "8503:8503"
    volumes:
      - ./logs:/app/logs
      - ./final_reports:/app/final_reports
      - ./.env:/app/.env
      - ./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
    env_file:
      - .env
    environment:
      POSTGRES_USER: bettafish
      POSTGRES_PASSWORD: bettafish
      POSTGRES_DB: bettafish
    # ports:
    #   - "5432:5432"
    volumes:
      - ./db_data:/var/lib/postgresql/data

5️⃣ 在填写完毕后,紧接着在下方的环境变量栏中填写 BettaFish 的环境变量配置参数,配置参数可参考下方代码,其中 api 地址可使用我在下方代码备注行中推荐的大模型地址,最后都填写完毕后点击“保存”按钮,系统将根据配置的参数自动拉取创建容器。

# ====================== 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 相关 =======================
# Insight Agent(推荐基于硅基流动的Kimi,https://cloud.siliconflow.cn/i/d7xKOc2f)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(推荐基于硅基流动的DeepSeek,https://cloud.siliconflow.cn/i/d7xKOc2f)API密钥
MEDIA_ENGINE_API_KEY=<你的硅基流动的 api key>
# Media Agent LLM接口BaseUrl
MEDIA_ENGINE_BASE_URL=https://api.siliconflow.cn/v1
# Media Agent LLM模型名称,如DeepSeek-V3.2-Exp
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://cloud.siliconflow.cn/i/d7xKOc2f)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(推荐基于硅基流动的DeepSeek,https://cloud.siliconflow.cn/i/d7xKOc2f)API密钥
REPORT_ENGINE_API_KEY=<你的硅基流动的 api key>
# Report Agent LLM接口BaseUrl
REPORT_ENGINE_BASE_URL=https://api.siliconflow.cn/v1
# Report Agent LLM模型,如DeepSeek-V3.2-Exp
REPORT_ENGINE_MODEL_NAME=deepseek-ai/DeepSeek-V3.2-Exp

# Forum Host LLM API密钥,Qwen3最新模型,推荐 https://cloud.siliconflow.cn/i/d7xKOc2f
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/i/d7xKOc2f
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>
SEARCH_TOOL_TYPE=BochaAPI
# ================== 小变量配置 ====================
ANSPIRE_API_KEY=
GRAPHRAG_ENABLED=False
GRAPHRAG_MAX_QUERIES=3

其中:

  • Insight Engine: http://<雨云服务器公网IP>:8501

  • Media Engine: http://<雨云服务器公网IP>:8502

  • Query Agent: http://<雨云服务器公网IP>:8503

  • 主应用: http://<雨云服务器公网IP>:8504

2.3 NAS 部署

先准备好域名,阿程这里用 CloudFlare 做反代处理。

其中:

  • 192.168.31.202 为极空间NAS上部署的 Ubuntu 虚拟机的 IP

  • 8504 是准备分配给 Bettafish 主界面的端口;

注意⚠️:由于极空间自身的 docker 环境限制,搭建在极空间 docker 上的 BettaFish 运行后会出现引擎无法连接到主界面,主界面上不显示引擎状态的情况,因此搭建的时候需要在极空间的 Ubuntu 虚拟机中进行,另外极空间的虚拟机功能必须依赖于固态硬盘才能正常使用。

1️⃣ 首先去 Ubuntu 官网下载服务端版或桌面版 Ubuntu 系统,这里个人推荐 Ubuntu 24.04.3 LTS 桌面版系统,因为除了安装 BettaFish 来跑,也可以当一个日常使用的操作系统来用。

2️⃣ 将下载完毕后的 Ubuntu 安装镜像上传到极空间固态硬盘中,打开极空间的虚拟机功能后按下图进行配置。

3️⃣ 参考下图配置你的Ubuntu操作系统参数,阿程的极空间NAS是Z4Pro性能版更换的32GB内存,因此这里CPU推荐4核心,内存8GB。

4️⃣ 系统硬盘空间分配 500GB 足够,虚拟网络配置选择 bridge(桥接模式),最后点击创建按钮,极空间就开始安装 Ubuntu 虚拟机系统了。

5️⃣ 安装好 Ubuntu 系统后,点击访问按钮进入 Ubuntu 系统,接着对 Ubuntu 系统桌面鼠标右键打开终端安装curlssh功能包,依次执行下面的安装命令即可:

sudo apt update
sudo apt install curl
sudo apt install ssh

6️⃣ 安装好上述功能包后,执行如下命令安装 1Panel V2 面板,耐心等待脚本跑完:

sudo bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

7️⃣ 安装完毕后即可在虚拟机外的电脑浏览器中输入虚拟机IP➕设置好的 1Panel 面板端口号打开 1Panel V2 面板了。

8️⃣ BettaFish 的compose容器部署请参考2.2 云服务器部署依样画葫芦部署,限于篇幅不再赘述。

三、程序登录测试

3.1 测试登录程序

如果是云服务器部署:

在浏览器中输入雨云服务器公网IP➕端口8504,例如: http://45.12.32.13:8504 就能看到如下界面。

如果是 NAS 部署:

在浏览器中输入反代的域名,例如: https://bettafish.raincloud.com 就能看到如下界面。

值得注意的是外部检索工具默认会选到Anspire API,请手动调整为BochaAPI,调整完毕后点击保存并启动系统

右侧四个引擎的指示灯由红变绿后,舆情分析平台就可以使用了。

3.2 测试通过极空间自带的远程登录功能进行访问

由于容器在分析完毕生成报告的时候受限于处理器的处理速度,因此不建议使用极空间远程访问功能进行使用。

四、BettaFish 的使用

4.1 实操分析

1️⃣ 输入需要分析的内容,此处以最近话题热度比较高的南京博物馆事件为例,点击开始搜索之后,会看到 Insight Agent 引擎开始工作了。

2️⃣ insight、media、query、forum 四个引擎会一起工作,整个分析的时间过程会比较长,并且过程中可能会遇到网络原因或者其他问题导致的错误。

3️⃣ 只有前四个引擎完成后,才可以点 Report Engine 开始生成最终的报告,生成的最终报告效果如下所示,并且生成的报告可以在 final_reports 文件夹中找到。

4.2 一些常见问题解答

Q1:BettaFish 需要什么样的配置才能加速产出报告?

A:云服务器建议选择雨云服务器的高配版及以上,NAS 建议选择极空间 Z423 及以上,因为阿程在极空间 Z4Pro 性能版的虚拟机上测试生成上文中的一个完整报告需要至少 1.5小时。

Q2:使用 BettaFish 有什么注意事项?

A:使用 BettaFish 开展舆情分析时,需要根据你的机器性能选择合适的话题,比如在 CPU 为 N305 的极空间 Z4Pro 性能版虚拟机上询问时,不要询问一年内的某某事情如何发展,尽量控制时间尺度,在配置不高的机器上执行过大的时间尺度的分析会导致分析陷入无响应的状态。

Q3:我可以在苹果的大内存 Mac Studio 或者 Macbook Pro 上搭建运行该容器吗?

A:可以,得益于苹果的M系列芯片,大内存的苹果设备上运行该容器确实会更加高效。

五、结语

BettaFish 使得个体在日渐纷繁的信息流中了解一件事情的来龙去脉变得更加容易。 容器运行时CPU占用不高,十分便利,但个人建议为了战未来,NAS处理器至少得是Z423这个级别往上,内存至少32G以上,因为你还会搭其他的容器,所以如果是长期用的话,我个人比较推荐用极空间Z4Pro+性能版及更高配置的设备部署。

如果你看完教程觉得头昏脑胀,摇摇欲坠,不知如何下手,也可以扫描下方二维码进入我的淘宝小店——阿程数码,直接购买对应的 Docker 搭建服务,我会远程帮你有偿部署。

0

评论区