OpenEuler 24.03 上部署 BettaFish 项目
概述
BettaFish (微舆) 是一款创新的多智能体舆论分析系统,从零开始构建,旨在帮助用户突破信息茧房,还原真实民意,预测未来趋势,并支持决策。用户只需以对话方式提出分析问题,智能体便会开始对30多个国内外主流社交媒体平台和数百万条公共评论进行全自动分析。

一、环境准备
1. 系统更新
sudo dnf update -y && sudo dnf makecache -y
2. 安装必要依赖
# 安装基础工具
sudo dnf install -y git wget curl gcc gcc-c++ make openssl-devel bzip2-devel libffi-devel
# 安装 Python 3.9+(OpenEuler 24.03 默认可能包含 Python 3.9+,若未安装则执行)
sudo dnf install -y python3 python3-devel python3-pip
# 安装数据库(推荐 PostgreSQL)
sudo dnf install -y postgresql postgresql-server postgresql-devel
# 执行以下命令初始化数据库集群(会自动创建 /var/lib/pgsql/data 目录及默认配置):
sudo postgresql-setup --initdb
sudo systemctl start postgresql
sudo systemctl enable --now postgresql
# 查看postgresql服务状态
sudo systemctl status postgresql

3. 安装 Conda(可选,推荐用于环境隔离)
# 下载 Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda
source $HOME/miniconda/bin/activate
# 创建并激活环境
conda create -n bettafish python=3.11 -y
conda activate bettafish
二、克隆项目代码
git clone https://github.com/666ghj/BettaFish.git
# 进入项目根目录
cd BettaFish

三、配置数据库
1. 初始化 PostgreSQL 并创建数据库
# 切换到 postgres 用户
sudo -u postgres psql
# 在 PostgreSQL 创建数据库
CREATE DATABASE bettafish;
# 设置用户密码,可根据习惯自行设置
CREATE USER bettafish WITH PASSWORD 'your_password';
# 授予对 bettafish 数据库的所有权限(包括创建表、索引等)
GRANT ALL PRIVILEGES ON DATABASE bettafish TO bettafish;
# 切换到 bettafish 数据库,授予对 public 模式的所有权限(创建表的核心权限)
\c bettafish
GRANT ALL PRIVILEGES ON SCHEMA public TO bettafish;
# 授予对 public 模式下所有序列、表的权限(避免后续插入数据时权限不足)
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO bettafish;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO bettafish;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO bettafish;
# 退出 PostgreSQL 命令行
\q
2. 配置数据库连接
# 复制环境变量模板
cp .env.example .env
# 编辑.env文件
vim .env
在.env文件中修改数据库的配置:
# PostgreSQL 配置
DB_HOST = "localhost"
DB_PORT = 5432
DB_USER = "bettafish"
DB_PASSWORD = "your_password"
DB_NAME = "bettafish"
DB_CHARSET = "utf8mb4"
# 其他配置(如 API 密钥等,可以后续再进行补充)
MINDSPIDER_BASE_URL=your_api_base_url
MINDSPIDER_API_KEY=sk-your-key

四、安装项目依赖
1. 安装基础依赖
# 使用 pip安装
pip install -r requirements.txt

# 或使用 uv安装(更快,需先安装 uv)
pip install uv
uv pip install -r requirements.txt
2. 安装 Playwright 浏览器驱动(用于爬虫)
# 安装 Playwright
pip install playwright
# 升级 Playwright 到最新稳定版,不容易报错
pip install --upgrade playwright
# 安装 Chromium 驱动
playwright install chromium
五、配置爬虫模块(MindSpider)
1. 进入爬虫目录并配置
cp ./.env MindSpider/.env
# 进入爬虫目录
cd MindSpider
# 检查.env文件,确保数据库配置与上文一致
vim .env
2. 初始化爬虫
# 项目初始化(创建表结构等)
python main.py --setup
# 输出如下,即为安装成功

六、启动系统并访问
1. 启动完整系统(推荐)
回到项目根目录:
cd ..
# 启动主应用
python app.py
2. 单独启动爬虫(可选)
cd MindSpider
# 运行话题提取(获取热点新闻和关键词)
python main.py --broad-topic
# 运行完整爬虫流程(指定日期)
python main.py --complete --date 2024-01-20
# 仅运行深度爬取(指定平台,如小红书、抖音、微博)
python main.py --deep-sentiment --platforms xhs dy wb
打开浏览器访问:
前端界面:http://192.168.100.10:5000(红字部分修改为自己主机的IP)

进入时,需要将LLM配置所有文本框填写完整(自行获取API,大部分可以使用同一大模型的一个API,Tavily的API则一定要到官方平台https://www.tavily.com/去获取),否则后面测试生成内容时会受到限制。
配置完成后,即可启动系统,开始测试效果

相关服务端口:8501、8502、8503(根据启动日志确认)
七、常见问题处理
端口占用
若启动后端口被占用,查找并终止进程:
netstat -tulpn | grep 5000 # 替换为占用的端口
kill -9 <进程ID>
爬虫初始化报错
Ident认证失败

解决方案:
1. 切换到 postgres 系统用户(修改配置需权限)
sudo -u postgres -i
2. 编辑 PostgreSQL 认证配置文件(pg_hba.conf)
# 打开配置文件(数据目录默认是 /var/lib/pgsql/data)
vim /var/lib/pgsql/data/pg_hba.conf
3. 修改认证方式为 md5(关键步骤)
在文件中找到以下两行(通常在文件末尾附近):
# IPv4 本地连接
host all all 127.0.0.1/32 ident
# IPv6 本地连接
host all all ::1/128 ident
将 ident 改为 md5(md5 表示密码认证),修改后如下:

保存退出:按 Esc → 输入 :wq → 回车。
4. 重启 PostgreSQL 服务(让配置生效)
# 重启服务
sudo systemctl restart postgresql
5. 验证数据库用户密码(可选,确保密码正确)
重新设置 bettafish 用户密码(避免密码错误导致二次失败):
# 切换到 postgres 用户,进入 PostgreSQL 命令行
sudo -u postgres psql
# 重新设置密码(替换为你 .env 中的密码,比如 Test778899)
ALTER USER bettafish WITH PASSWORD 'Test778899';
# 退出 PostgreSQL 命令行
\q
# 退出 postgres 用户
exit
6. 验证数据库连接(关键验证步骤)
用 bettafish 用户测试连接,确认认证成功:
# 用 psql 命令连接(会提示输入密码,输入你设置的密码)
psql -U bettafish -d bettafish -h localhost
若成功进入 bettafish=# 终端,说明认证配置生效;
若提示「密码错误」,检查 .env 中的 DB_PASSWORD 与上述设置的密码是否一致。
7. 重新执行爬虫初始化
回到 MindSpider 目录,重新运行 --setup:
cd /home/server/BettaFish/MindSpider
python main.py --setup
此时会显示「数据库连接成功」,并继续执行初始化流程。
权限不足

解决方案:
1. 切换到 postgres 超级用户(仅超级用户能授予权限)
# 切换到 postgres 系统用户,进入 PostgreSQL 命令行
sudo -u postgres psql
2. 授予 bettafish 用户完整权限(关键步骤)
在 PostgreSQL 命令行中执行以下 3 条命令(复制粘贴即可):
# 授予对 bettafish 数据库的所有权限(包括创建表、索引等)
GRANT ALL PRIVILEGES ON DATABASE bettafish TO bettafish;
# 切换到 bettafish 数据库,授予对 public 模式的所有权限(创建表的核心权限)
\c bettafish
GRANT ALL PRIVILEGES ON SCHEMA public TO bettafish;
# 授予对 public 模式下所有序列、表的权限(避免后续插入数据时权限不足)
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO bettafish;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO bettafish;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO bettafish;
# 退出 PostgreSQL 命令行
\q
3. 重新执行爬虫初始化(验证权限是否生效)
回到 MindSpider 目录,再次运行初始化命令:
cd /home/server/BettaFish/MindSpider
python main.py --setup
依赖安装问题

解决方案:
安装依赖即可
pip install psycopg[binary]
八、参考资源
项目官方文档:[GitHub 仓库](https://github.com/666ghj/BettaFish)
常见问题:[Issues #185](https://github.com/666ghj/BettaFish/issues/185)
爬虫配置细节:[MindSpider 使用说明](https://github.com/666ghj/BettaFish/blob/main/MindSpider/README.md)
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)