venue-operations-research-project-memory.md
7.78 KB
场馆运营反馈调研平台项目记忆
版本:V1.0
状态:Active
更新时间:2026-03-26
本文档用于保存当前项目的稳定上下文,作为后续继续重构、交接和回溯的统一基线。对于需要长期记住的事实,应优先更新本文件。
1. 项目当前定位
- 项目基座:开源项目
BettaFish - 当前重构目标:从“舆情分析平台”转为“面向博物馆、艺术馆、数字展馆等场馆的运营市场反馈调研平台”
- 核心价值:通过前端触发式爬虫、多引擎分析和最终报告,帮助场馆识别优点、待改进点、改进建议与竞品参考
- 当前原则:保留三引擎分析界面与最终输出界面,不做完全推倒重写,而是在既有架构上逐步重构语义、数据模型和交互
2. 用户明确要求与工作偏好
- 使用中文沟通。
- 默认直接修改,不只停留在方案讨论。
- 每次代码更新后要重建当前 Docker 镜像。
- 整个项目统一采用 Docker 容器启动。
- 保留原有三个引擎分析功能界面 UI 和最终输出界面 UI。
- 页面需要可滚动,并持续优化为极简主义、精致交互、高分辨率适配的工作台风格。
- 允许使用本地自建模型,不依赖云端密钥。
3. 当前运行架构
3.1 服务编排
-
infra/docker/docker-compose.yml暴露:-
5000:5000主 Flask 工作台 8501:85018502:85028503:8503
-
-
infra/docker/docker-compose.override.yml使用本地构建镜像bettafish-local:latest - 当前主要容器:
bettafishbettafish-db
3.2 前端与主站
- 当前主入口:
frontend/(Vue 3 + Vite + TypeScript) - 构建产物目录:
static/frontend/ - 兜底模板:
templates/index.html - 后端主应用:
app.py -
app.py当前优先返回static/frontend/index.html - 当前首页标题已改为“场馆运营反馈调研平台”
- 已保留三引擎与报告模块主界面,并围绕场馆研究任务组织内容
- 当前主工作台已拆分为以下核心组件:
components/layout/AppHeader.vuecomponents/layout/WorkspaceOverview.vuecomponents/research/*components/crawler/*components/engines/*components/report/*components/settings/ConfigDrawer.vue
3.3 爬虫控制层
- canonical 目录:
backend/crawler/ - 兼容入口:
crawler_web.py - 已提供前端可调用接口:
/api/crawler/options/api/crawler/state/api/crawler/login/check/api/crawler/login/start/api/crawler/login/cancel/api/crawler/start/api/crawler/stop
- 支持平台:
- 小红书
- 抖音
- 快手
- B站
- 微博
- 贴吧
- 知乎
- 支持登录方式:
- 二维码登录
- 手机号登录
- Cookie 登录
- 支持采集模式:
- 关键词搜索
- 指定内容详情
- 创作者主页
3.4 分析与报告层
- 保留的核心模块:
InsightEngineQueryEngineMediaEngineForumEngineReportEngine
- ReportEngine 已接入场馆专用模板:
ReportEngine/report_template/场馆运营反馈调研报告模板.md - 模板选择节点已优先识别场馆运营反馈类查询:
ReportEngine/nodes/template_selection_node.py
4. 已完成的关键改造
4.1 产品语义与入口改造
- 首页语义已从“舆情分析”转为“场馆运营反馈调研”
- 已新增场馆研究任务表单,字段包含:
- 场馆名称
- 城市
- 场馆类型
- 研究重点
- 时间范围
- 竞品 / 标杆场馆
- 系统会根据场馆任务自动生成研究指令,并支持同步到爬虫控制台
4.2 本地模型与空 key 兼容
- 当前默认模型服务:
http://192.168.220.11 - 当前默认模型:
qwen3.5:27b - 允许空 key 运行本地 OpenAI 兼容服务
- 已新增 OpenAI 兼容封装:
utils/openai_compat.py - Insight / Query / Media / Report 多处 LLM Base 已接入空 key 归一化处理
4.3 QueryEngine 去 Tavily 强依赖
-
QueryEngine/tools/search.py已改造成可选加载 Tavily - 在未配置 Tavily 或未安装
tavily-python时,不会在导入阶段直接阻塞 QueryEngine 启动 - 当前搜索工具策略可优先走 Anspire 或 Bocha,再按配置回退
4.4 前端状态保持
- 前端已使用本地存储恢复页面状态
- 关键本地存储键:
bettafish.frontendState.v2bettafish.crawlerState.v2bettafish.workspaceState.v2bettafish.reportState.v2bettafish.reportTemplate.v1
- 已覆盖恢复内容:
- 场馆研究表单
- 搜索指令
- 爬虫配置
- 自定义报告模板
- 当前页签
- 报告当前 / 历史任务查看态
4.5 任务持久化与历史恢复
场馆研究任务
- 存储文件:
var/logs/venue_research_tasks.json - 主接口:
GET /api/research/tasksPOST /api/research/tasksPOST /api/research/tasks/<task_id>/activate
报告任务
- 报告接口:
GET /api/report/statusGET /api/report/tasksGET /api/report/result/<task_id>/json
- 当前报告任务持久化目录:
var/reports/final/.task_registry/ - 启动时支持从历史
var/reports/final/report_state__*.json兜底恢复 - 已支持从已落盘 HTML 回读报告内容,避免仅依赖内存态
4.6 Docker 验证现状
- 最近已多次执行:
docker compose -f infra/docker/docker-compose.yml -f infra/docker/docker-compose.override.yml up -d --build - 最近已验证通过:
-
bettafish容器运行正常 -
bettafish-db健康检查正常 /api/report/status/api/report/tasks/api/report/result/report_20250827_121059/json
-
- 当前运行期报告任务缓存示例:
var/reports/final/.task_registry/report_20250827_121059.json
5. 关键文件清单
- 主站与任务编排:
app.py - 前端工程:
frontend/ - 前端构建产物:
static/frontend/ - 爬虫 Web 控制:
backend/crawler/(根目录crawler_web.py为兼容入口) - 报告接口与任务恢复:
ReportEngine/flask_interface.py - 兜底模板:
templates/index.html - Docker 编排:
infra/docker/docker-compose.yml - 本地覆盖构建:
infra/docker/docker-compose.override.yml - 场馆 PRD:
docs/venue-operations-research-prd.md - 场馆实施计划:
docs/venue-operations-research-platform-plan.md - 场馆 Backlog:
docs/venue-operations-research-backlog.md
6. 已知问题与风险
- 报告页签当前仍受“三引擎需先完成最新分析”的原有锁定逻辑影响,直接点击页签的交互还需要继续收口。
- 文档在当前 PowerShell 环境中偶尔会出现中文乱码显示,但文件本身通常仍是 UTF-8,修改前后都应优先使用 UTF-8 方式读取。
- 仓库当前是脏工作区,存在用户已有改动;后续继续修改时不能直接回退未知改动。
- 结构化数据模型仍未完整落库,当前更多依赖任务快照、日志和报告文件。
- 当前历史任务列表中可能存在旧数据遗留的乱码标题,这属于既有历史数据质量问题,不是本轮 Vue 前端重构引入的问题。
7. 下一轮建议优先级
- 收口报告页签与三引擎完成态之间的交互逻辑,确保用户可以稳定查看历史报告。
- 推进
Venue、证据、标签、问题、建议等结构化数据模型。 - 将竞品对比与标杆场馆分析纳入首个结构化版本。
- 继续优化高分辨率布局、滚动体验和极简主义视觉细节。
- 在保证 Docker 统一运行的前提下,完善任务看板、历史复盘与趋势视图。
8. 后续协作约定
- 继续修改代码前,先读取本文件和三份业务文档,确认当前上下文。
- 每次完成代码改动后,都执行一次 Docker 重建验证。
- 若新增重要接口、状态文件、持久化路径或用户要求,应优先补写到本文件。