Files
Sansheng-Intelligence/docs/CSHARP-NODE-HANDOFF.md
T
Jack f1ce583fd1 feat: 发布三笙AI情报局独立版公司研发基线
同步家纺情报 v2 数据、59 个严格权威源、趋势图库、移动端交互、Google/Yandex 翻译门控及静态 SEO/GEO 构建。

补充面向 C# 研发的 README,明确当前无 LLM、多模态与生图模型,记录翻译请求参数、缓存与失败策略、数据处理边界、前端职责和无 GitHub Pages 部署流程。

新增按日期倒序维护的 CHANGELOG,记录影响、验证与代码/数据/dist 回滚方法。

验证:11 个 Python 契约测试、13 个 Node 前端测试通过;静态构建生成 1096 个 Sitemap URL。
2026-08-14 19:26:39 +08:00

3.0 KiB
Raw Blame History

C# 后端与 Node 前端交接

本仓库是可运行参考实现,不要求研发团队继续使用 Python 前端,也不要求用 C# 重写爬虫。推荐拆分边界如下。

C# 后端

适合负责:用户、企业、角色权限、订阅市场、任务分派、提醒、收藏、人工复核、审计日志和 API。不要把抓取器放进 Web 请求生命周期;通过计划任务或消息队列运行采集作业。

建议最小实体:

  • Source:来源、层级、语言、证据词、抓取策略、启停状态。
  • FetchRun:开始/结束、HTTP 状态、内容指纹、证据、错误。
  • IntelligenceItem:稳定 ID、栏目、事实字段、分析字段、适用地区、来源版本。
  • ItemSource:一条聚合情报与多个来源的多对多关系。
  • UserPreference:企业关注的国家、平台、品类和角色。
  • UserTask:负责人、截止日、提醒、已处理/不相关状态。

数据库推荐 PostgreSQL;本地单机试运行可用 SQLite。正文去重建立 normalized_title + start_date + region 唯一候选键,内容指纹建立普通索引,外部 URL 使用规范化哈希索引。原始 HTML 只在需要审计时对象存储短期保留,不塞入主表。

API 可直接映射现有 JSON:

GET /api/intelligence/summary
GET /api/intelligence/items?section=&market=&platform=&from=&to=&cursor=
GET /api/intelligence/items/{id}
GET /api/platforms
GET /api/sources/{id}/runs
POST /api/tasks
PATCH /api/tasks/{id}

服务端必须再次校验翻译链接和外链协议,仅允许 http/https。用户偏好、任务和人工结论与自动抓取事实分表,避免下一轮增量更新覆盖人工数据。

Node 前端

可以迁移到 Next.js 或 React,但不必重写信息架构。保留七个业务入口和趋势四个子类,默认趋势页进入灵感图库。推荐:

  • TypeScript 定义与 docs/DATA-CONTRACT.md 一致的模型。
  • TanStack Query 或框架原生数据缓存处理分页;Zustand 只存筛选、主题和用户偏好,不存整库情报。
  • 服务端渲染栏目和详情,客户端只增强筛选、收藏、任务和翻译门控。
  • 图片使用源站或授权地址时保留来源;没有图时继续使用 HTML 文字海报,不生成无来源的假图片。
  • 触控目标至少 44px,业务正文至少 16px,移动端七分类首屏可发现。

迁移顺序

  1. 先冻结 JSON v2 契约,将当前两份发布 JSON 导入新 API。
  2. Node 前端改为读 API,逐页对比旧静态站;此时抓取仍由 Python 定时任务运行。
  3. C# 增加用户偏好、任务和权限,不改自动事实字段。
  4. 如确有团队维护收益,再逐个把稳定解析器迁移到 .NET;每迁移一个源,用相同 URL、证据词和快照做双跑比对。
  5. 最后将 SEO canonical 切向新域名,并保留旧 URL 的 301 映射。

不要一开始重写 57 个源。先把现有采集器当独立批处理服务,C# 和 Node 围绕稳定 JSON 契约开发,风险和交付周期最低。