# 研听 / report-notebooklm `研听` 是一个第一阶段(Phase 1)的应用和后端,用来把全球机构研报转化成结构化的中文阅读与收听体验。 这个仓库被整理成单个 Gitea 交接仓库,供产品和工程团队接手使用。 ## 仓库里有什么 | 区域 | 路径 | 说明 | |---|---|---| | 后端 API | `report-notebooklm-api/` | FastAPI 服务、MySQL 模型、Alembic 迁移、种子数据导入、对外只读 API。 | | Flutter 应用 | `report-notebooklm-app/` | Flutter 客户端,包含五个主标签页、研报详情模块、Android/Web 脚手架。 | | 仓库文档 | `docs/` | 项目级概览、决策记录、开发历程和交接指南。 | | 后端文档 | `report-notebooklm-api/docs/` | API、数据、内容流水线、运维手册的细节。 | | 应用文档 | `report-notebooklm-app/docs/` | 应用运维手册、项目地图、API 调用说明。 | ## 产品速览 `研听` 帮助中文用户读懂全球机构研报,覆盖宏观、贵金属、大宗商品、能源、央行、跨资产等主题。 第一阶段聚焦在: - 推荐:精选 / 最新的研报解读。 - 研报:研报列表和基础筛选。 - 机构:机构列表和机构详情。 - 听单:带音频的研报。 - 我的:游客 / 登录状态,以及浅层的个人状态入口。 第一阶段明确**不包含**:评论、UGC、付费解锁、会员、广告、交易信号、投资建议、研报解读下载。 ## 先读这些 给人类读者: 1. `docs/PROJECT_OVERVIEW.md` 2. `docs/DECISIONS.md` 3. `docs/DATA_SOURCE_FLOW.md` 4. `docs/DEVELOPMENT_HISTORY.md` 5. `report-notebooklm-api/docs/HANDOFF.md` 6. `report-notebooklm-app/docs/HANDOFF.md` 给 AI agent: 1. `AGENTS.md` 2. `docs/DECISIONS.md` 3. 对应子系统的 README 和运维手册。 ## 当前实现状态 后端已实现: - 挂在 `/api/report-notebooklm/v1` 下的 FastAPI 应用。 - 第一阶段数据表的 SQLAlchemy 模型层。 - Alembic 初始迁移。 - 种子数据导入脚本。 - 健康检查、信息流、研报、研报模块、机构、听单的对外只读接口。 - 针对种子数据和对外 API 行为的测试。 应用已实现: - 五个底部标签页:推荐、研报、机构、听单、我的。 - 基于 `RNB_API_BASE` 的列表 / 详情视图。 - 研报详情的模块渲染器注册表。 - 登录、收藏、外链跳转确认、播放进度的本地占位实现。 - Android 和 Web 构建脚手架。 尚未达到生产可用: - 鉴权和个人状态。 - 真实的音频流签名。 - 外链事件写入。 - 内部内容管理 API。 - 生产环境对象存储和缓存失效。 - 生产 API 域名、发布签名、最终应用图标、应用商店元信息。 ## 后端快速上手 ```bash cd report-notebooklm-api python -m venv .venv source .venv/bin/activate pip install -e ".[dev]" cp .env.example .env # 按你的 MySQL 和 Redis 编辑 .env alembic upgrade head python scripts/import_seed_content.py uvicorn app.main:app --reload --host --port ``` 冒烟检查: ```bash API_BASE_URL=http://:/api/report-notebooklm/v1 curl "$API_BASE_URL/health" curl "$API_BASE_URL/feed/recommended" curl "$API_BASE_URL/reports/rep_ssga_gold" ``` ## 应用快速上手 ```bash cd report-notebooklm-app flutter analyze flutter test flutter run -d chrome --dart-define=RNB_API_BASE= ``` Android 模拟器: ```bash flutter run -d --dart-define=RNB_API_BASE= ``` ## 验证 后端: ```bash cd report-notebooklm-api source .venv/bin/activate pytest -q ``` 应用: ```bash cd report-notebooklm-app flutter analyze flutter test flutter build web --dart-define=RNB_API_BASE= flutter build apk --debug --dart-define=RNB_API_BASE= ``` ## 文档边界 这个仓库是一份代码交接快照,不能替代产品的唯一真源(SSOT)。 产品 SSOT:mall-docs 里的 report-notebooklm 文档,快照日期:2026-06-03。 仅限本机的笔记、私有路径、原始会话指针、个人 agent 工作流,都应放在被忽略的 `docs.jimme.local/` 和 `AGENTS.local.md` 里。