import { classifyMail } from "../src/services/parse/classify"; import { extractMailInstructions } from "../src/services/parse/split-instructions"; import { isDoAttachmentFilename } from "../src/services/parse/do-upload-extract"; import fs from "fs"; import path from "path"; const root = "docx/邮件/模板/附件下载_邮件识别"; const files: string[] = []; function walk(d: string) { for (const n of fs.readdirSync(d)) { const p = path.join(d, n); if (fs.statSync(p).isDirectory()) walk(p); else if (!/\.docx$/i.test(n)) files.push(n); } } walk(root); const subject = "智鸿2+WHLC027G597465+WHSU8127240+洛杉�?40HQ+EDT2026.04-25 ETA2026.05-15船名航次HMM EMERALD 013E+提拆�?; const body = "请查收新增预报\nDO也同步上传至附件请注意查收!"; const ev = classifyMail({ subject, body, filenames: files }); const units = extractMailInstructions({ subject, body, filenames: files }); console.log("files", files); console.log("classify", ev.mail_type, "score", ev.total); console.log( "signals", ev.signals.map((s) => `${s.signal}:${s.score}`), ); console.log( "units", units.map((u) => ({ k: u.uiKind, cur: u.isCurrent, src: u.source, kw: u.keywords.slice(0, 4), })), ); console.log( "DO?", files.filter((f) => isDoAttachmentFilename(f) || /\bDO\b/i.test(f)), );