+
+
+
News Engine
+
Memind 早报采集、质量过滤、规则/LLM 排序与发布前预览。服务独立运行,LLM 复用统一模型中心默认配置。
+
+
+
+
+ {message && {message}
}
+
+
+
运行配置
+
+
+
+
+
+
+
+
+
+
+
+
+
发布联动
+
+
+
+
+
+
+
+
+
前往服务号早报配置
+ {publishStatus?.page?.url ? (
+
打开今日页面
+ ) : null}
+
+
+ Memind 早报 worker 会同时合并 SearXNG 全栏目预取与 News Engine 今日批次,再统一排序并优先使用本地 `/media/` 配图。发布前请确认今日采集批次与排序结果符合预期。
+
+
+
+
+
定时采集
+
+
+
+
+
+
+
+
+
+
+
+
+
+
排序运行记录
+ {!runs.length ? (
+
暂无排序运行记录。
+ ) : (
+
+
+
+
+ | 时间 |
+ 候选 |
+ 事件 |
+ 入选 |
+ 来源 |
+
+
+
+ {runs.map((row) => (
+
+ | {formatTime(row.createdAt)} |
+ {row.candidateCount} |
+ {row.eventCount} |
+ {row.selectedCount} |
+ {String(row.options?.source ?? '—')} |
+
+ ))}
+
+
+
+ )}
+
+
+
+
采集历史
+ {!collections.length ? (
+
暂无采集记录。点击「立即采集」开始。
+ ) : (
+
+
+
+
+ | 时间 |
+ 日期标签 |
+ 状态 |
+ 候选 |
+ 事件 |
+ 入选 |
+ 操作 |
+
+
+
+ {collections.map((row) => (
+
+ | {formatTime(row.createdAt)} |
+ {row.dateLabel || '—'} |
+ {row.status} |
+ {row.candidateCount} |
+ {row.eventCount} |
+ {row.selectedCount} |
+
+
+ |
+
+ ))}
+
+
+
+ )}
+
+
+ {detail && (
+
+
当前批次 · {detail.dateLabel || detail.id.slice(0, 8)}
+
+ 候选 {detail.candidateCount} · 事件 {detail.eventCount} · 入选 {detail.selectedCount}
+ {detail.scoring?.assessedCount != null ? ` · LLM 已评 ${detail.scoring.assessedCount}` : ''}
+
+ {!selectedArticles.length ? (
+
暂无入选条目。
+ ) : (
+
+
+
+
+ | 标题 |
+ 栏目 |
+ 分数 |
+ 链接 |
+
+
+
+ {selectedArticles.map((item) => (
+
+ | {item.canonicalTitle ?? item.title ?? item.primaryArticle?.title ?? '—'} |
+ {item.category ?? item.groupTitle ?? '—'} |
+ {item.finalScore != null ? item.finalScore.toFixed(1) : (item.score != null ? item.score.toFixed(1) : '—')} |
+
+ {item.primaryArticle?.image ? (
+ 配图
+ ) : item.url ? (
+ 打开
+ ) : '—'}
+ |
+
+ ))}
+
+
+
+ )}
+
+ )}
+
+ );
+}
diff --git a/src/api/client.ts b/src/api/client.ts
index a7c8e03..f6ff01c 100644
--- a/src/api/client.ts
+++ b/src/api/client.ts
@@ -1,5 +1,7 @@
import type {
AssetGatewayConfig,
+ ImageMakeAdminConfig,
+ ImageMakeAdminConfigResponse,
AdminDashboardSummary,
AdminServiceRestartAction,
AdminServiceRestartResult,
@@ -70,6 +72,13 @@ import type {
WechatWebNotification,
MindSearchConfig,
MindSearchServiceTestResult,
+ NewsEngineCollectionDetail,
+ NewsEngineCollectionSummary,
+ NewsEngineConfig,
+ NewsEngineHealth,
+ NewsEngineRankResult,
+ NewsEngineRunSummary,
+ NewsEngineSchedulerStatus,
AdminTemplateCatalogItem,
AdminTemplateCatalogPatch,
} from '../types';
@@ -555,6 +564,35 @@ export async function getAssetGatewayConfig(): Promise