autoNews 是一个面向个人使用的 A 股信息雷达:采集高质量公开信息源,处理和存储数据,调用 AI 生成结构化分析,并把符合条件的结果推送到 Telegram。
项目边界:不做交易系统、不做 Web UI、不做多用户平台,也不输出买入、卖出、目标价、仓位等直接投资建议。
目标生产架构是 PostgreSQL 事实主库和任务状态账本,加上 data_collection、data_process、ai_analyse、data_push 四个独立 worker。四个 worker 通过共享 persistence/storage、PostgreSQL 状态和 data/ payload 协作,不通过单个总 daemon 串行编排。
当前数据库生产路径已切换为 PostgreSQL + Alembic + 共享 persistence repository;四个模块化常驻 worker 入口已落地,run-once/manual compensation 命令仍用于联调和人工补偿。生产部署资产包括 Dockerfile、compose 示例、systemd 示例和上线手册,入口见 docs/handlebook/production-deployment.md。
环境要求:
- Python 3.12
- uv
- PostgreSQL(运行依赖数据库的命令时需要)
安装依赖:
uv sync --dev安全基线命令:
uv run --locked auto-news version
uv run --locked auto-news healthcheck这两个命令不会触发新闻抓取、AI 调用、数据库写入或 Telegram 发送。
uv run --locked python scripts/qa.py --mode fast修改代码或可执行配置后,优先运行与改动匹配的最小测试;需要全量确认时再运行上面的快速基线或 uv run --locked python scripts/qa.py。
聚焦验证示例:
uv run --locked pytest
uv run --locked ruff check .src/:项目实现代码。tests/:单元测试和 CLI 行为测试。docs/:项目设计、操作手册、数据源说明和待办。deploy/:生产部署示例,包括 docker compose 和 systemd 模板。data/:运行期 payload 根目录,用于附件、manifest、raw 快照等产物;任务状态以状态账本为准,不以文件是否存在判断完成。openspec/:OpenSpec 规格和变更记录。
AI 或新维护者阅读文档时,先看 docs/doc-roadmap.md,再按任务进入具体文档。
依赖数据库的命令只从 DATABASE_URL 连接 PostgreSQL。
export DATABASE_URL='postgresql+psycopg://user:password@host:5432/autonews'
uv run --locked alembic upgrade head- 生产上线、状态检查、备份和回滚:
docs/handlebook/production-deployment.md - 本地联调和跨模块诊断:
docs/handlebook/README.md - 模块命令参考:
docs/handlebook/data-collection.md、docs/handlebook/data-process.md、docs/handlebook/ai-analyse.md、docs/handlebook/data-push.md - 全局设计和模块边界:
docs/project-design.md、docs/design/README.md - 部署规格:
openspec/specs/production-deployment/spec.md
具体 CLI、入口函数和验证方式见 docs/handlebook/。