PROJECT 01 — 全栈独立开发 · 生产运行中

政策雷达PolicyCollector

让政策情报自己找上门——多源采集、自动入库、RAG 问答,一套跑在生产环境里的情报自动化平台。

角色 独立开发(全栈) 周期 2025.10 - 2026.06 状态 生产运行 · 服务 10+ 业务人员
> 90%知识库检索准确率
0 行代码新增采集站点(Profile 配置化)
3 引擎爬虫自动降级,采集不停摆
三存储MySQL + Chroma + Redis 各司其职

为什么做

WHY

01痛点:政策情报靠人肉,漏检成为常态

政策研究每天要盯十几个部委、省市官网,人工检索费时且漏检——一个政策漏看,支撑的课题结论就可能失准。

02判断:这不该是一个"爬虫脚本",该是一个平台

站点会改版、政策源会增加、分析需求会变化——所以我把它设计成可配置、可扩展的系统:新增站点改配置不改代码,分析能力基于 RAG 持续演进。

怎么架构

ARCHITECTURE
前端      Vue3 + Element Plus 管理后台(主题 / 站点 / 任务 / 文档 / 搜索 / 报告)
   │  axios /api/v1
接口层    FastAPI · 9 组路由(统一响应封装 + BackgroundTasks 异步抓取)
   │
服务层    主题生命周期 · 检索编排 · 文档管理 · RAG 编排 · 学习报告
   │
核心层    三阶段采集引擎:AI 全网搜索(博查+Tavily) → 来源详情抓取配置站点爬取
          自研 RAG 管线:切分 500/50 → DashScope 向量化 → Chroma 检索 → DeepSeek 带[n]引用
          缓存层:Redis Cache-Aside(TTL 抖动防雪崩 · 空结果不缓存防穿透)
   │
数据层    MySQL/SQLite 双方言(元数据真相源) · Chroma(语义) · Redis(缓存)

值得展开讲的四个技术决策

HIGHLIGHTS
自研 RAG

替换 RAGFlow 的五步管线

从 chunking 策略调优到定位「解释句 + 超长表格」的检索失配,完整走过一遍 RAG 排障闭环;检索结果带 [n] 引用,可溯源、可核验。

权威分级

检索结果按信源重排

官网 / AI 搜索 / 互联网三档权威级别:全文检索按权威度排序,向量检索加权重排——宁可少给,不给低信源噪声。

成本控制

让 LLM 账单可预测

检索缓存 1h、问答缓存 24h、学习报告绑定资料指纹(资料不变就不重复生成)——缓存命中率换来账单稳定。

扩展性

新增站点零代码

站点差异全部收敛到 Profile 配置:三引擎(httpx / Playwright / BS4)自动降级,配一个 JSON 就接入一个新政策源

做成了什么

RESULTS

业务侧

生产环境运行 8 个月,10+ 业务人员日常在用;从「每天人工翻网站」变成「AI 全网搜索 + 自动入库 + 带引用问答」,支撑省部级课题的政策情报底座。

技术侧

14 个 pytest 用例守护核心链路(切分边界 / 缓存降级 / 权威排序);完整经历 SQLite → MySQL 迁移RAGFlow → 自研 RAG 替换两次架构演进,旧接口零改动。

技术栈

STACK
FastAPIVue3自研 RAGChromaDashScopeDeepSeek SQLAlchemyMySQL / SQLite WALRedishttpx / PlaywrightAPSchedulerDocker阿里云