ENGLISH READING GUIDE

Discovery map and WorldMonitor review

Map, activity feed, and evidence interactions, with a source-based assessment of what to adapt from WorldMonitor.

Full source document follows in Simplified Chinese.

阿拉丁神灯发现页与 WorldMonitor 适配评估

评估对象为本地 WorldMonitor 2.11.8,Git HEAD 为 49d227c6e,用户截图顶栏显示 2.5.25。截图用于判断信息布局,工程结论以本地源码为准,官方文档用于交叉核对产品和许可边界。本次属于源码与设计评估,尚未构建并运行这份 WorldMonitor 检出,也未把任何上游模块接进产品。

阿拉丁已按下文的 D1/D2 路线实现地图首页、需求与证据联动,以及共享发布、地区变更和撤回。现行运行方式、实测时延和部署边界见共享发现试点的部署与验收。

1. 首期发现页应该交付什么

把现在右栏的示意图升级成发现页首屏的主操作区。地图、需求流、详情与雷达围绕同一批机会和同一组选中项工作。用户确认公开发布后,符合可见条件和筛选条件的客户端应看到地图计数、需求卡和动态同步变化。用户可以沿着地图进入证据和跟进,也可以从列表反向定位市场。世界底图覆盖全球,数据覆盖和样本性质按来源展示。

WorldMonitor 的做法 阿拉丁的产品转化 首期位置
世界地图是主画布,地图有时间、地区和图层 首屏用地图看哪些市场出现新需求,点国家后按地区筛选动态。保留缩放、返回全球和地图全屏 发现首页
直播和摄像头拼接成多个时效面板 用「用户新需求」「公开采购更新」「我关注的变化」取代视频面板,时间和来源各自可查 地图下方的信息面板
右侧分析解释事件和趋势 先展示需求详情、原始依据、交付地和截止日。明确「适配能力」与「有当前采购证据」是两个判断,按需启动神灯助手 桌面右侧详情,手机底部抽屉
全局搜索、地区跳转和可恢复视图 搜索需求、组织或公告号,从结果打开对应地区和证据。分享链接只含公开筛选和对象标识 顶栏搜索和视图控制
来源有独立更新周期和失败状态 用户发布走业务事件流。官方公告走各自调度。每个面板显示快照时间、上次成功时间和覆盖情况 面板状态和详情
地图和多面板组成高密度工作区 延续阿拉丁现有品牌和「发现、需求广场、神灯助手」入口。默认地图优先,列表视图保留给逐条核查和辅助技术 桌面、窄屏共用数据和筛选

桌面建议首屏用约 55%–65% 的可用内容高度给地图,侧栏承载所选市场或单条需求的详情,下面三块分别给动态、采购和关注。用金色标记站内公开需求,青色标记有来源的有效采购公告,灰色表示历史或状态待核。颜色同时配图标和文字。顶栏建议地区、行业和时间,首选「今天、7 天、30 天」。采购图层另有「仍可响应」,与发布日期筛选独立。用户正在阅读时,有新数据先更新计数和角标,不抢滚动位置、键盘焦点或地图中心。手机用全宽地图、快捷筛选和可切换的列表,点选后用底部抽屉;面板拖拽、3D 地球和大批图层后置。

地图显示的是需求的项目地、交付地或服务地区。发布者主动选择国家或地区;城市展示要明确选择,公开投影只用同意的城市级精度,地址、GPS 和联系人坐标不进入公共图层。采购公告优先使用履约地,其次显示可核对的买方所属地,并标清地理含义。缺乏地理证据的记录留在列表「地区待确认」。同一需求涉及多国时,各国计数可分别纳入,但全球总数按需求 ID 去重。低缩放先按国家聚合,城市级资料充分后才显示聚类;国家标签位置不代表具体买家。

2. 现有能力与主要缺口

阿拉丁 0.1.1 已有 Windows 独立窗口、发现导航、研究和雷达、来源卡及证据窗口。发现页现有地图为静态 SVG,单个欧洲点随证据队列有无而显示;地图没有可选国家、图层、缩放、事件流,也未参与列表筛选。发现页 HTML · 发现页数据

发现页读取的是复核样本,涵盖 19 个市场、69 家采购组织,口径是有原文的复核组织,不等于 69 条仍开放的商机。现有实时研究只在指定行业及地区范围运行,持续监控还依赖后续调度。现有「发布」写入本机 JSON 草稿,API 绑定回环地址。跨用户发布与实时地图要先有登录身份、公开权限、正式需求表、公共读取接口和事件分发。桌面本机服务适合演示和单机研究,跨设备用同一套经鉴权的发现服务。草稿与服务入口 · 回环监听 · 工作区与雷达

本地源码追踪

下列引用为 WorldMonitor 上游代码的相对路径,行号对应评估时的版本。

路径 源码中的机制 对阿拉丁的取舍
src/components/MapContainer.ts:83、:369、:629、:646、:720 统一地区、时间和地图接口,按设备或能力在 MapLibre + deck.gl、D3 SVG、globe.gl 间选用渲染器 保留统一视图状态、支持 WebView2 与窄屏降级。首期用一个 2D 地图与可操作列表
src/app/panel-layout.ts:1328、:1362、:3185、:3281;src/app/panel-mount-deferral.ts:6 地图可全屏、调整高度和固定,面板可排列,移动端有专门导航。非首屏面板按需挂载 保留全屏、范围切换、按需加载及有上下文的详情。首期固定三块信息面板,后续再开放布局编辑
src/app/event-handlers.ts:1389;src/app/panel-layout.ts:3813 预设可一并改变地区、图层、时间和布局,仪表盘页签可持久化 后续将「关注的市场」做成能保存筛选和数据范围的研究视图,首期用现有雷达承接关注
src/app/refresh-scheduler.ts:48、:126、:156;ARCHITECTURE.md:215、:221 快慢两路首屏装载,面板独立节奏、按可见性调度、失败退避。批量数据先校验,再原子更新缓存 地图首屏只读必要投影,正文、简报和证据延后。各外部来源有独立刷新和可用性,发布事件直接推送
server/worldmonitor/news/v1/list-feed-digest.ts:832、:885、:1163、:3553 条件请求、最后成功缓存、后台更新和同一事件聚合。来源可信度与事件重要性有不同逻辑 后续行业信息可做独立订阅,复用条件请求、同一事件分组与多原链。需求适配、时效与源可信度分别表达
scripts/seed-global-tenders.mjs:415、:426;scripts/_global-tenders.mjs:91、:226、:238、:262 官方采购源有界采集、链接归一化、去重和期限校验。逐源成功及失败独立合并 自有 TED 工作者先实现批次一致性和来源健康。公开公告沿各自源验证、过滤和上图
server/worldmonitor/economic/v1/list-global-tenders.ts:188;src/components/GlobalProcurementPanel.ts:691 Pro 服务端权限、分页快照和明确的旧数据、部分可用、空状态 采购面板可借鉴筛选和状态,首期的数据和权限由阿拉丁服务提供

地图细读进一步确认,src/components/DeckGLMap.ts:1814 按范围、缩放和启用图层缓存聚合,:5734 点击簇时只读取有限子记录。src/app/country-intel.ts:299 把地图上的国家操作连到国家详情,src/components/CountryDeepDivePanel.ts:535 检查响应对应的国家和请求,再应用到界面。阿拉丁可用相同的交互节奏,快速切换市场时丢弃迟到响应,国家详情随所选筛选更新。地图视图预设可逐步做成「德国采购」「墨西哥找客户」「我的关注」,一起保存地区、行业、时间和图层,而非只记地图缩放。左侧导航仍按现有产品信息架构组织。

两个源码细节值得重新定义。WorldMonitor 的时间逻辑在部分地图层允许时间未知的记录通过,3D 界面也不具备完全等同的时间回调。阿拉丁把时间未知单列,首期以 2D 的地图、流与列表口径一致为验收标准。WorldMonitor 的采购面板有独立分页,不能据此认为上游已经把采购机会布到世界地图上。该项目本地采集脚本登记的 22 个适配器也有各自范围和截断条件。

3. 两条更新链汇合到同一个发现页

设计流程图 · Design flowchart
图表文字 · Diagram source
flowchart LR
    A[作者确认公开发布] --> B[身份 权限 发布校验]
    B --> C[事务写入需求版本 公开投影 事件]
    C --> D[发现快照和增量事件]
    E[TED 等已核对的官方来源] --> F[限额采集 去重 来源状态]
    F --> G[证据 原文版本和公共线索投影]
    G --> D
    D --> H[发现查询状态]
    H --> I[世界地图]
    H --> J[动态流与证据]
    H --> K[关注与变化]

用户发布实时上图

  1. 作者在「我需要」填写事项、分类、公开范围和地区,预览公共地图标签。草稿、私有需求和审核待处理记录不进入公开投影。受控试点可由已核验账号发布,符合规则的发布直接进入公开状态。
  2. 服务端在同一数据库事务写入需求版本、公开投影和持久事件。发布接口带幂等键,成功响应返回正式 ID、版本及可显示状态。发布者收到提交确认即可更新自己的页面,重复提交和订阅回声按 ID 与版本合并。搜索、翻译和模型研判在发布成功后独立补充。
  3. 新打开的客户端从一致的数据库快照取得聚合、可见对象及游标,随后通过 SSE 补读游标后的持久事件。服务端仅单向推送更新,因此首期无需为地图单独搭建 WebSocket;后续私信可有自己的双向通道。初期可在短事务中串行分配公共流序号,避免使用可能先分配、后乱序提交的自增值直接作为游标。事件只保留 ID、版本及变更操作,读端按当前权限取公开字段。订阅断开用最后游标恢复,游标超期则重新获取快照。
  4. 客户端按需求 ID 和版本合并变更,用同一个状态更新图层、国家计数、信息流和所选详情。符合当前筛选的对象立即显示。因其他筛选被排除的新需求可在明确标识的全局更新提示中出现,地图保持用户当前视角。改交付地区时从旧地区移除并更新新地区。撤回、改私密、到期或关闭按状态重新投影,避免卡片或计数残留。
  5. 连接异常时显示正在重连及最后同步时间。提交未确认时保留草稿或显示待确认,断网恢复后用同一幂等键查回最终结果。公开需求缓存使用有期限的快照,恢复连接先同步撤回和权限变化;离线页面标注快照时间。

建议验收目标为正常网络、固定试点负载下,从事务成功到第二台客户端地图和动态可见的端到端延迟 P95 ≤ 2 秒。记录两端测时,覆盖处于后台后回到前台、断线期间连续发布和撤回、重复事件、已打开详情被撤回。这个数字是开发验收目标,尚无生产延迟实测。

客户端和接口接缝

建议契约 首期行为
POST /v1/demands 与版本化编辑、撤回 登录后写入。返回需求 ID、版本、公开状态及可投影的地理范围。重复请求返回原结果,旧版本编辑可明确提示冲突
GET /v1/discovery/snapshot 返回同一版本的可见范围、国家聚合、分页摘要、各来源状态和公共流游标。试点可对公共投影统一订阅并在客户端应用筛选。规模扩大后,服务端下发过滤后的聚合和列表,并对退出结果范围的对象同步失效
GET /v1/discovery/events 返回 upsert、remove 或重新拉快照指令。只发送当前会话有权获取的信息,对曾经可见、现已不可见的记录撤销投影。网页可用同源会话和原生 SSE,桌面若需要自定义鉴权头则用受控的 fetch 流或本机网关,避免把凭据放入 URL
统一发现项 id、revision、kind、status、publishedAt、updatedAt、可选 deadlineAt、markets[]、sourceRef、可选 evidenceRef。每个市场附 role、precision 和来源,保留原始语言和时区。合成样本独立标识且不参与默认公开计数
地图和列表 同一个查询状态持有地区、时间、行业、图层及所选 ID。地图用稳定要素 ID 更新数据,按帧合并同批小更新。选中项移除时关闭或切换到相应失效状态,网络恢复后从一致快照重建

Tauri 继续使用自身的 WebView2。地图脚本、样式、Worker 和最小底图优先随包提供,通过现有同源静态服务和内容安全策略接入。地图瓦片、字体及边界来源单独授权并列明署名。窄屏和 WebGL 失败保留按国家筛选的列表。地图数据层可用稳定 ID 做增量更新,SSE 可通过 Last-Event-ID 实现连接恢复。GeoJSONSource 官方 API · SSE 标准

公开采购与外部信号

WorldMonitor 公开采购是独立的数据产品。源码有各官方源的适配器、并行有界采集、统一快照和 Pro 分页读取。文档记录按小时更新,快照有效期为三小时;部分源失败时保留有期限的最后成功数据并标记部分可用,成功且为空才清除旧结果。上游列出的开放机会和近期中标分开,国家覆盖未知也有单独状态。官方采购文档

阿拉丁先复用自己的 TED 适配、Crawl4AI 原文读取和复核结果。把 69 家组织用在演示或历史验证层,另做官方 TED 的增量采集。进入开放采购图层要有可用原链、可核对的状态及仍有效的截止证据;日期未知、延期未核对、历史中标和已过期分别展示。UK Contracts Finder 可作为第二个标准化官方源候选,墨西哥另核对官方数据和原始公告出处。上游文档也把 Mexico Postor / ComprasMX 的导入和官方出处校验列为未完成,不能从上游的世界覆盖图推断墨西哥已接通。官方采购覆盖与未实现项

来源适配器注册上游、数据许可及出处、地域范围、采集周期、单次预算、最大页数和失败策略。持久化来源记录、版本、原链、发布时间、采集时间、原文核对时间及处理结果。按来源记录「未配置、覆盖未知、成功有结果、成功为空、部分可用、旧快照、失败」。按官方 ID 和版本归并同源记录;跨源只有共享官方编号或多项证据一致才合并,保留出处。同一买方不同公告保留,批次重试不得产生重复需求。正文和译文按需读取,首页只下发地图聚合与一屏卡片所需字段。DSH 用于用户主动补查或预算内辅助核实,LLM 生成的摘要和匹配理由保留原文引用及不确定项。可选行业新闻和物流信号应独立成层,不由模型直接转成采购需求。

4. 移植与复用决策

部分 推荐路线 原因
地图渲染 独立引入 MapLibre GL JS。初期用国家面、交互选中、常规聚类和 GeoJSON;实测数量和渲染瓶颈后再考虑 deck.gl 或切片 当前数据规模主要问题是地理语义、过滤和实时状态。MapLibre 本身已有聚类与交互,现有 Tauri 可保留
图层及联动 借鉴 WorldMonitor 的图层注册、区域视图、数据源状态和面板分批加载,独立实现阿拉丁的图层语义与共享查询状态 WorldMonitor 图层事件和数据管线绑定众多地缘、媒体、市场服务,整体移植会把不需要的依赖和授权条件带进来
公开源 继续自有 TED/DSH/Crawl4AI,按具体许可独立接官方采购源;复用上游对状态、证据、失败和旧快照的设计 Pro 页面和托管 API 具有独立访问与数据条件,不能作为默认后端
全球动态、发布与私有关注 阿拉丁业务层新建用户、公开需求、事件和读模型,研究和证据入口沿用已完成路径 当前本机草稿和上游的采集型信息面板均不承担跨用户发布
3D、直播、军情和摄像头 商业场景无明确用途时保持在设计参考中;视实际负载再验证需要的可视化 首期要验证发布、发现、核查和跟进的效率

WorldMonitor 应用源码为 AGPL-3.0-only。其官方说明明确允许在遵守相应义务时商业使用;如果产品打算直接并入其代码并闭源分发,先确认替代商业许可或适用义务。官方托管服务、API、MCP、嵌入、数据输出及品牌有各自条件,地图底图、地理边界、图标、字体和各官方公告的数据条件也需逐项核对。此评估建议独立写业务和 UI,直接引入权利明确的通用库并保留署名。地图作为读取及筛选能力,独立于任务书 B12 的地图 POI 企业召回和地理数据采购。WorldMonitor 许可 · MapLibre 官方聚类示例

5. 推进顺序及验收

切片 交付 出口
D1 世界地图与证据发现 发现页大地图、国家聚合、数据来源标签、日期与图层、证据详情。复核样本和当前机会可区分。桌面和窄屏共享筛选 点国家筛列表,点列表定位地图。筛选一致。离线、地图加载失败、来源旧快照均可用列表完成核查。地图与纯列表对照,衡量找到并打开可跟进证据所需步骤、时间及误判
D2 公开需求实时上图 受控试点身份、公开预览、正式发布、持久事件、跨客户端 SSE、编辑与撤回 两台独立客户端测试发布、重复提交、改地区、撤回、断线追赶、冷启动和过滤。私有草稿和未授权字段不上图,外部采集故障不影响发布。D1 和 D2 一起作为首个对外可验收版本
D3 有时效的公开采购与雷达 TED 增量、来源健康、快照和失效规则,候选第二来源,保存筛选及变化 真实来源通过采集失败、成功空结果、延期、更正、过期、中标及重复回放测试。观察从看到机会到打开证据及保存关注的转化
D4 丰富图层和商业能力 多市场行业覆盖、账号可用的持续雷达、异步翻译和团队协作 按真实需求、源授权、成本和用户验证逐项扩展。WebView2 和手机低性能设备做首屏、地图手势、内存、长时打开和断线恢复验证

首个验收演示建议用两个独立账号。甲公开发布「墨西哥交付的低功耗门锁试单」,乙的世界地图在当前筛选内增加墨西哥需求,需求流出现一条「用户发布」,点开看到规格、交付地及公开联系入口。随后甲把交付地改为德国,再撤回,乙看到区域计数和卡片随之迁移及消失。同一屏幕的公开 TED 图层继续按自己的来源时间运行,两个来源都能回溯。