StableLearn Logo

搜索内容

AI Tools 12 min read

BettaFish Docker 部署完全指南:一键搭建你的专属舆情分析系统

BettaFish 是一个创新的多智能体舆情分析系统,支持 Docker 一键部署。本文详细介绍如何使用 Docker 快速部署 BettaFish,包括环境配置、LLM 接入、使用指南和故障排除等完整流程。

Cover image for BettaFish Docker 部署完全指南:一键搭建你的专属舆情分析系统

本文发布于 315 天前,内容可能已过时,请注意甄别。

BettaFish 是一个相当有意思的开源项目,它让舆情分析变得像聊天一样简单。你只需要提出分析需求,系统就会自动调动多个 AI 智能体去分析微博、小红书、抖音等 30+ 个主流平台的内容,最后生成一份专业的分析报告。

这个项目的名字很有意思——BettaFish(斗鱼),正如它的寓意”小而强大,无畏挑战”。今天我们就来看看如何用 Docker 快速部署这个强大的舆情分析系统。

想象一下,你只需要问一句”最近大家对新能源汽车怎么看?“,系统就能帮你分析全网的讨论,这种感觉是不是很酷?

🚀 核心优势

  1. AI 驱动的全面监控:AI 爬虫集群 24/7 不间断运行,全面覆盖微博、小红书、抖音、快手等 10+ 国内外重点社交媒体平台
  2. 超越 LLM 的复合分析引擎:集成 5 种专业设计的智能体和多种中间件模型
  3. 强大的多模态能力:突破文本和图像限制,深度分析短视频内容
  4. 智能体”论坛”协作机制:通过辩论主持人模式进行思维碰撞和辩论
  5. 公私域数据无缝融合:支持内部业务数据库与舆情数据的无缝集成
  6. 轻量级高扩展框架:基于纯 Python 模块化设计,实现轻量级一键部署

🏗️ 系统架构

核心组件

  • Insight Agent:私有数据库挖掘智能体
  • Media Agent:多模态内容分析智能体
  • Query Agent:精准信息搜索智能体
  • Report Agent:智能报告生成智能体
  • Forum Engine:论坛协作引擎

完整分析工作流程

步骤阶段名称主要操作参与组件循环性质
1用户查询Flask 主应用接收查询Flask 主应用-
2并行启动三个智能体同时开始工作Query Agent, Media Agent, Insight Agent-
3初步分析各智能体使用专用工具进行概览搜索各智能体 + 专用工具集-
4策略制定根据初步结果制定分段研究策略各智能体内部决策模块-
5-N迭代阶段论坛协作 + 深度研究ForumEngine + 所有智能体多轮循环
N+1结果整合Report Agent 收集所有分析结果Report Agent-
N+2报告生成动态选择模板和风格,多轮生成最终报告Report Agent + 模板引擎-

🐳 Docker 快速部署

系统要求

  • 操作系统:Windows、Linux、MacOS
  • Docker:Docker 20.10+ 和 Docker Compose
  • 内存:推荐 4GB+
  • 存储空间:至少 10GB 可用空间

1. 获取项目代码

   # 克隆项目仓库
git clone https://github.com/666ghj/BettaFish.git
cd BettaFish

2. 环境配置

2.1 复制配置文件

   # 复制环境配置文件
cp .env.example .env

2.2 编辑配置文件

编辑 .env 文件,配置以下关键参数:

   # ====================== 数据库配置 ======================
# 数据库主机(Docker 环境中使用服务名)
DB_HOST=db
# 数据库端口
DB_PORT=5432
# 数据库用户名
DB_USER=bettafish
# 数据库密码
DB_PASSWORD=bettafish
# 数据库名称
DB_NAME=bettafish
# 数据库类型
DB_DIALECT=postgresql

# ====================== LLM 配置 ======================
# Insight Agent LLM 配置
INSIGHT_ENGINE_API_KEY=your_api_key_here
INSIGHT_ENGINE_BASE_URL=https://api.openai.com/v1
INSIGHT_ENGINE_MODEL_NAME=gpt-3.5-turbo

# Query Agent LLM 配置
QUERY_ENGINE_API_KEY=your_api_key_here
QUERY_ENGINE_BASE_URL=https://api.openai.com/v1
QUERY_ENGINE_MODEL_NAME=gpt-3.5-turbo

# Media Agent LLM 配置
MEDIA_ENGINE_API_KEY=your_api_key_here
MEDIA_ENGINE_BASE_URL=https://api.openai.com/v1
MEDIA_ENGINE_MODEL_NAME=gpt-4-vision-preview

# Report Agent LLM 配置
REPORT_ENGINE_API_KEY=your_api_key_here
REPORT_ENGINE_BASE_URL=https://api.openai.com/v1
REPORT_ENGINE_MODEL_NAME=gpt-4

# Forum Host LLM 配置
FORUM_HOST_API_KEY=your_api_key_here
FORUM_HOST_BASE_URL=https://api.openai.com/v1
FORUM_HOST_MODEL_NAME=gpt-3.5-turbo

# ====================== 搜索引擎配置 ======================
# Serper API Key(用于网络搜索)
SERPER_API_KEY=your_serper_api_key

# ====================== 其他配置 ======================
# Flask 应用密钥
FLASK_SECRET_KEY=your_secret_key_here
# 日志级别
LOG_LEVEL=INFO

3. 启动服务

3.1 后台启动所有服务

   # 启动所有服务(后台运行)
docker compose up -d

3.2 查看服务状态

   # 查看服务运行状态
docker compose ps

# 查看服务日志
docker compose logs -f

# 查看特定服务日志
docker compose logs -f app
docker compose logs -f db

4. 访问应用

服务启动成功后,可以通过以下地址访问:

⚙️ 详细配置说明

数据库配置

系统支持 PostgreSQL(推荐)和 MySQL 数据库:

配置项Docker 环境值说明
DB_HOSTdb数据库服务名(在 docker-compose.yml 中定义)
DB_PORT5432PostgreSQL 默认端口
DB_USERbettafish数据库用户名
DB_PASSWORDbettafish数据库密码
DB_NAMEbettafish数据库名称
其他保持默认其他参数如数据库连接池设置请保持默认值

LLM 模型配置

系统所有 LLM 调用都使用 OpenAI API 接口标准。您可以使用:

  1. OpenAI 官方 API
  2. 兼容 OpenAI 格式的其他服务商(如 Azure OpenAI、Claude、国产大模型等)
  3. 本地部署的模型(如 Ollama、vLLM 等)

推荐的 LLM API 服务商:

  • aihubmix
  • Azure OpenAI Service
  • 阿里云通义千问
  • 腾讯云混元

网络搜索配置

系统使用 Serper API 进行网络搜索,需要:

  1. 注册 Serper 账号
  2. 获取 API Key
  3. 在 .env 文件中配置 SERPER_API_KEY

🎯 使用指南

基本使用流程

  1. 访问主界面:打开 http://localhost:5000
  2. 输入分析需求:在对话框中输入您的舆情分析需求
  3. 等待分析完成:系统会自动调用多个智能体进行分析
  4. 查看分析报告:系统会生成详细的 HTML 格式分析报告

使用示例

示例 1:品牌舆情分析

请分析”华为手机”在最近一周的网络舆情,包括用户评价、热点话题和情感倾向

示例 2:热点事件分析

分析”人工智能发展”相关的最新讨论,重点关注技术趋势和公众态度

示例 3:竞品对比分析

对比分析”特斯拉”和”比亚迪”在电动汽车领域的品牌声誉和用户反馈

高级功能

1. 单独使用各个智能体

   # 启动 Query Engine(搜索智能体)
docker compose exec app streamlit run SingleEngineApp/query_engine_streamlit_app.py --server.port 8503

# 启动 Media Engine(多媒体分析智能体)
docker compose exec app streamlit run SingleEngineApp/media_engine_streamlit_app.py --server.port 8502

# 启动 Insight Engine(洞察分析智能体)
docker compose exec app streamlit run SingleEngineApp/insight_engine_streamlit_app.py --server.port 8501

2. 爬虫系统独立使用

   # 进入容器
docker compose exec app bash

# 进入爬虫目录
cd MindSpider

# 项目初始化
python main.py --setup

# 运行话题提取
python main.py --broad-topic

# 运行完整爬虫工作流
python main.py --complete --date 2024-01-20

# 仅运行深度爬取
python main.py --deep-sentiment --platforms xhs dy wb

🔧 故障排除

常见问题

1. 容器启动失败

问题:docker compose up -d 失败

解决方案:

   # 检查 Docker 服务状态
docker --version
docker compose --version

# 清理旧容器和镜像
docker compose down
docker system prune -f

# 重新构建并启动
docker compose up -d --build

2. 数据库连接失败

问题:应用无法连接到数据库

解决方案:

   # 检查数据库容器状态
docker compose logs db

# 检查数据库配置
cat .env | grep DB_

# 重启数据库服务
docker compose restart db

3. LLM API 调用失败

问题:智能体无法调用 LLM API

解决方案:

  1. 检查 API Key 是否正确配置
  2. 验证网络连接和 API 服务可用性
  3. 检查 API 配额和限制
   # 查看应用日志
docker compose logs app | grep -i error

# 测试 API 连接
curl -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"Hello"}]}' \
     https://api.openai.com/v1/chat/completions

4. 端口冲突

问题:端口 5000 被占用

解决方案:

   # 查找占用端口的进程
netstat -tulpn | grep :5000

# 修改 docker-compose.yml 中的端口映射
# 将 "5000:5000" 改为 "5001:5000"

# 重新启动服务
docker compose down
docker compose up -d

5. 内存不足

问题:系统运行缓慢或崩溃

解决方案:

   # 检查系统资源使用情况
docker stats

# 增加 Docker 内存限制
# 在 docker-compose.yml 中添加:
# deploy:
#   resources:
#     limits:
#       memory: 4G

# 清理不使用的 Docker 资源
docker system prune -f
docker volume prune -f

性能优化

1. 数据库优化

   # 进入数据库容器
docker compose exec db psql -U bettafish -d bettafish

-- 创建索引优化查询性能
CREATE INDEX IF NOT EXISTS idx_content_created_at ON content(created_at);
CREATE INDEX IF NOT EXISTS idx_content_platform ON content(platform);

2. 应用优化

在 .env 文件中调整以下参数:

   # 减少并发请求数量
MAX_CONCURRENT_REQUESTS=5

# 调整超时时间
REQUEST_TIMEOUT=30

# 启用缓存
ENABLE_CACHE=true
CACHE_TTL=3600

📊 监控和维护

日志管理

   # 查看所有服务日志
docker compose logs

# 实时查看日志
docker compose logs -f

# 查看特定时间范围的日志
docker compose logs --since="2024-01-01T00:00:00" --until="2024-01-02T00:00:00"

# 将日志保存到文件
docker compose logs > bettafish.log

数据备份

   # 备份 PostgreSQL 数据库
docker compose exec db pg_dump -U bettafish bettafish > backup_$(date +%Y%m%d_%H%M%S).sql

# 恢复数据库
docker compose exec -T db psql -U bettafish bettafish < backup_20240101_120000.sql

系统更新

   # 拉取最新代码
git pull origin main

# 重新构建并启动服务
docker compose down
docker compose up -d --build

# 清理旧镜像
docker image prune -f

🤝 社区和支持

获取帮助

注意:本指南基于 BettaFish 项目的当前版本编写,随着项目的更新,部分配置和使用方法可能会有所变化。建议定期查看项目的官方文档以获取最新信息。

分享文章

更多文章