const fs = require('fs'); const path = require('path'); const outDir = path.dirname(__filename); const seedVideos = [ { video_id: 'ivs_001', title: 'The Mafia Prince\'s Innocent Bride', channel: 'Viral Clips', duration: 60, view_count: 1359791, like_count: 60580 }, { video_id: 'ivs_002', title: 'When My Ex Became My Boss', channel: 'ReelShort', duration: 180, view_count: 2167971, like_count: 234949 }, { video_id: 'ivs_003', title: 'My High School Bully Is Now My Client', channel: 'Sports Central', duration: 90, view_count: 2830953, like_count: 96516 }, { video_id: 'ivs_004', title: 'Best Friend\'s Brother Wants Me Back', channel: 'Studio', duration: 300, view_count: 864488, like_count: 255870 }, { video_id: 'ivs_005', title: 'Best Friend\'s Brother Wants Me Back', channel: 'News Network', duration: 180, view_count: 2113033, like_count: 51466 }, { video_id: 'ivs_006', title: 'The CEO\'s Runaway Bride', channel: 'DramaBox', duration: 120, view_count: 2831811, like_count: 252717 }, { video_id: 'ivs_007', title: 'I Accidentally Married a Duke', channel: 'DramaBox', duration: 180, view_count: 1935615, like_count: 295043 }, { video_id: 'ivs_008', title: 'I Became the Villain\'s Secretary', channel: 'Viral Clips', duration: 240, view_count: 3220280, like_count: 44327 }, { video_id: 'ivs_009', title: 'My Neighbor Is a Werewolf Alpha', channel: 'News Network', duration: 60, view_count: 4687855, like_count: 222425 }, { video_id: 'ivs_010', title: 'The Billionaire\'s Secret Baby', channel: 'Studio', duration: 240, view_count: 4093963, like_count: 224400 }, ]; const badVideos = [ { video_id: 'ivs_031', title: 'How to Repair a Car Engine | Tutorial', channel: 'Studio', duration: 1200, view_count: 386235, like_count: 6117 }, { video_id: 'ivs_033', title: 'Nightly News: Market Crash Update', channel: 'Studio', duration: 1200, view_count: 398618, like_count: 7739 }, { video_id: 'ivs_034', title: 'Bloomberg Market Open Coverage', channel: 'YouTube Originals', duration: 600, view_count: 447568, like_count: 6549 }, { video_id: 'ivs_037', title: 'Zoo Live: Pandas Eating Bamboo 10 Hours', channel: 'News Network', duration: 3600, view_count: 430602, like_count: 11475 }, { video_id: 'ivs_039', title: 'Math Lecture: Advanced Calculus III', channel: 'Studio', duration: 1200, view_count: 126876, like_count: 887 }, ]; const monoVideos = [ { video_id: 'mono_001', title: 'ABC World News Tonight: Iran Attack Special Report', channel: 'ABC News', duration: 1244, view_count: 1426073, like_count: 12029 }, { video_id: 'mono_002', title: 'BBC Daily Briefing: Rescue Mission Inside Iran', channel: 'BBC News', duration: 1059, view_count: 665219, like_count: 8432 }, ]; const multiVideos = [ { video_id: 'multi_001', title: 'Have I Got News For You: Comedians Roast Trump', channel: 'CNN', duration: 2578, view_count: 1058353, like_count: 45211 }, { video_id: 'multi_002', title: 'NBC News Poll: Iran, Russia and the White House', channel: 'NBC News', duration: 135, view_count: 151202, like_count: 3891 }, ]; function buildDimensionScores(dialogue, conflict, emotion, branch, scene, traffic, interactive, ai) { return { dialogue_potential: dialogue, conflict_intensity: conflict, emotional_resonance: emotion, branch_designability: branch, scene_visualization: scene, traffic_base: traffic, interactive_structure: interactive, ai_producibility: ai }; } function buildRecord(video, scores, grade, adaptation, aiScore, tags, predicted) { const total = Object.values(scores).reduce((a, b) => a + b, 0); return { input: { video_id: video.video_id, title: video.title, channel: video.channel, duration: video.duration, view_count: video.view_count, like_count: video.like_count, source_url: `https://www.youtube.com/watch?v=${video.video_id}`, crawl_time: '2026-04-13T02:40:00Z' }, expected_score: { ...scores, total }, expected_grade: grade, adaptation_plan: adaptation, ai_producibility_score: aiScore, platform_fit_tags: tags, predicted_metrics: predicted || { completion_rate: grade === 'S' || grade === 'A' ? '0.22' : '0.12', replay_rate: grade === 'S' || grade === 'A' ? '0.32' : '0.10', choice_rate: grade === 'S' || grade === 'A' ? '0.88' : '0.72' } }; } const train = []; const test = []; // --- Train: at least 20 samples --- // 10 good drama seeds train.push(buildRecord(seedVideos[0], buildDimensionScores(18,16,15,18,14,10,17,16), 'S', 'Suitable. Urban romance with strong emotional stakes. Reconstruct as interactive micro-drama with 3 choice points: trust the mafia heir / investigate his past / confront the rival family. Bottleneck at the wedding confrontation. Endings: HE (reconciliation), BE (separation), hidden ending (double identity reveal). Modern indoor scenes keep AI production cost low.', 45, ['ReelShort_Billionaire','DramaBox_StrongFemaleLead'], {completion_rate:'0.25', replay_rate:'0.38', choice_rate:'0.90'})); train.push(buildRecord(seedVideos[1], buildDimensionScores(18,16,14,17,14,10,16,16), 'S', 'Suitable. Ex-to-boss dynamic offers built-in power tension. 3 choice points: accept the promotion / leak info to a rival / confront at the gala. Bottleneck converges at the boardroom vote. Endings: partnership, resignation, hidden ending (acquisition twist).', 42, ['ReelShort_Thrill','DramaBox_StrongFemaleLead'], {completion_rate:'0.24', replay_rate:'0.36', choice_rate:'0.89'})); train.push(buildRecord(seedVideos[2], buildDimensionScores(17,15,15,17,13,10,15,15), 'S', 'Suitable. Bully-client reversal creates moral ambiguity. 3 choice points: expose past humiliation / protect his secret / team up against a common enemy. Converges at the courtroom / pitch scene. Endings: professional respect, romantic spark, hidden ending (old diary discovery).', 40, ['ReelShort_Sweet','ReelShort_Billionaire'], {completion_rate:'0.23', replay_rate:'0.35', choice_rate:'0.88'})); train.push(buildRecord(seedVideos[3], buildDimensionScores(16,15,14,16,13,9,15,15), 'A', 'Suitable. Best-friend\'s-brother trope with clear relationship barriers. 2-3 choice points: hide feelings / confess at the party / side with him against family. Bottleneck at the family dinner scene. Endings: elope, wait, hidden ending (sister approves).', 44, ['ReelShort_Billionaire','DramaBox_StrongFemaleLead'], {completion_rate:'0.21', replay_rate:'0.31', choice_rate:'0.87'})); train.push(buildRecord(seedVideos[4], buildDimensionScores(16,15,13,16,13,10,14,14), 'A', 'Suitable. Second-chance romance with media-industry backdrop. 3 choice points: run the exposé / bury the story / ask him directly at the live broadcast. Converges at the on-air interview. Endings: public reunion, private goodbye, hidden ending (career swap).', 41, ['DramaBox_CEO','DramaBox_Revenge'], {completion_rate:'0.20', replay_rate:'0.30', choice_rate:'0.86'})); train.push(buildRecord(seedVideos[5], buildDimensionScores(17,16,15,17,14,10,16,16), 'A', 'Suitable. Runaway bride + CEO契约 sets up classic contractual-romance arc. 3 choice points: sign the contract / tear it up / negotiate terms. Bottleneck at the shareholder meeting. Endings: love contract, professional split, hidden ending (pregnancy reveal).', 46, ['ReelShort_Sweet','DramaBox_Revenge'], {completion_rate:'0.22', replay_rate:'0.33', choice_rate:'0.88'})); train.push(buildRecord(seedVideos[6], buildDimensionScores(15,14,13,16,12,9,14,14), 'A', 'Suitable. Accidental aristocratic marriage. Costume complexity lowers AI producibility slightly, but indoor manor scenes are manageable. 2-3 choice points: flee the estate / play the role / ally with the duke\'s rival. Converges at the duchess ball. Endings: modern escape, accepted title, hidden ending (commoner identity exposed).', 38, ['DramaBox_Revenge','DramaBox_CEO'], {completion_rate:'0.19', replay_rate:'0.29', choice_rate:'0.85'})); train.push(buildRecord(seedVideos[7], buildDimensionScores(16,15,13,16,13,10,15,15), 'A', 'Suitable. Villain secretary offers a redemption arc with clear faction choices. 3 choice points: warn the protagonist / help the villain escape / leak evidence to the press. Bottleneck at the tribunal / press conference. Endings: redeemed, imprisoned, hidden ending (become the new CEO).', 43, ['ReelShort_Billionaire','ReelShort_Sweet'], {completion_rate:'0.21', replay_rate:'0.32', choice_rate:'0.87'})); train.push(buildRecord(seedVideos[8], buildDimensionScores(14,14,12,15,12,10,14,14), 'A', 'Suitable. Supernatural neighbor introduces hidden-identity tension. 2-3 choice points: enter his apartment / call the cops / keep his secret from the HOA. Converges at the full-moon rooftop. Endings: pack bond, human separation, hidden ending (become alpha).', 40, ['DramaBox_CEO','DramaBox_StrongFemaleLead'], {completion_rate:'0.20', replay_rate:'0.30', choice_rate:'0.86'})); train.push(buildRecord(seedVideos[9], buildDimensionScores(17,16,15,17,14,10,16,16), 'A', 'Suitable. Secret baby + billionaire reunion. 3 choice points: tell him at the party / hide the child / use the paternity test as leverage. Bottleneck at the charity gala stage. Endings: family reunion,独立抚养, hidden ending (twin reveal).', 45, ['DramaBox_Revenge','DramaBox_CEO'], {completion_rate:'0.22', replay_rate:'0.32', choice_rate:'0.88'})); // 3 bad examples train.push(buildRecord(badVideos[0], buildDimensionScores(4,6,3,5,8,5,4,6), 'D', 'Unsuitable. Tutorial content has zero character relationships and no emotional stakes. No decision points can be extracted. Recommend downgrade to linear explainer video or DIY montage.', 16, [], {completion_rate:'0.08', replay_rate:'0.05', choice_rate:'0.45'})); train.push(buildRecord(badVideos[1], buildDimensionScores(5,8,4,6,7,5,5,7), 'D', 'Unsuitable. Market crash news is monologue-driven with no emotional anchor person. Conflicts are macro-economic, not interpersonal. Only viable path is heavy role-reconstruction (analyst vs client), but score stays below threshold. Recommend linear news summary.', 20, [], {completion_rate:'0.09', replay_rate:'0.06', choice_rate:'0.50'})); train.push(buildRecord(badVideos[2], buildDimensionScores(5,7,4,5,6,5,4,6), 'D', 'Unsuitable. Market open coverage lacks protagonists and moral dilemmas. No natural choice points. Suggest repurposing as a 60-second market briefing instead of interactive drama.', 19, [], {completion_rate:'0.08', replay_rate:'0.05', choice_rate:'0.48'})); // 2 single-speaker reconstructions train.push(buildRecord(monoVideos[0], buildDimensionScores(8,14,10,12,11,10,10,10), 'C', 'Marginal. Single-speaker news broadcast must undergo full reconstruction: assign anchor statements to White House staff roles (General, NSA Advisor, President) to create a situation-room drama. 2 choice points possible: immediate retaliation vs secret negotiation; support exile prince vs internal opposition. Only viable if production budget allows narrative rewrite. Otherwise downgrade to linear short.', 22, [], {completion_rate:'0.12', replay_rate:'0.10', choice_rate:'0.68'})); train.push(buildRecord(monoVideos[1], buildDimensionScores(9,15,12,13,11,9,11,11), 'C', 'Marginal. BBC rescue briefing is single narrator. Reconstruct by splitting facts into dialogue between pilot, rescue commander, and war correspondent. 2 choice points: risk second chopper / abort mission; trust local guides / rely on satellite intel. Bottleneck at extraction scene. Requires significant rewrite.', 24, [], {completion_rate:'0.13', replay_rate:'0.11', choice_rate:'0.70'})); // 2 multi-character direct adaptations train.push(buildRecord(multiVideos[0], buildDimensionScores(17,14,12,16,14,9,14,13), 'B', 'Suitable with slicing. Multi-comedian panel roast contains natural stance对立. Direct adaptation: viewers choose which comedian\'s angle to amplify, shifting roast targets. Must slice the 2578s program into 60-90s interactive units to fit short-drama pacing. Each unit ends with a choice that affects the next segment\'s jokes. AI producibility is high because stage is fixed.', 35, ['ReelShort_Thrill'], {completion_rate:'0.16', replay_rate:'0.22', choice_rate:'0.82'})); train.push(buildRecord(multiVideos[1], buildDimensionScores(16,14,11,17,14,7,15,13), 'B', 'Suitable with expansion. NBC multi-guest interview has Q&A structure and立场对立 between Iran FM, Energy Secretary, and Trump. Direct adaptation: viewer plays NBC reporter choosing whom to press at the White House briefing. Different questions unlock different information拼图. Bottleneck at the live report scene. Needs narrative padding because original is only 135s.', 32, ['DramaBox_CEO'], {completion_rate:'0.15', replay_rate:'0.20', choice_rate:'0.80'})); // 3 additional varied samples to reach 20+ train.push(buildRecord(badVideos[3], buildDimensionScores(3,4,3,4,5,5,3,5), 'D', 'Unsuitable. Nature livestream has no narrative, no dialogue, no conflict. Completely incompatible with interactive drama structure. Recommend ambient content or ASMR channel.', 15, [], {completion_rate:'0.06', replay_rate:'0.04', choice_rate:'0.30'})); train.push(buildRecord(badVideos[4], buildDimensionScores(4,5,3,5,6,3,4,6), 'D', 'Unsuitable. Math lecture is pure knowledge delivery with no characters or emotional arc. Cannot extract meaningful choice points. Suggest educational short-form video instead.', 18, [], {completion_rate:'0.07', replay_rate:'0.05', choice_rate:'0.40'})); train.push(buildRecord({ video_id: 'ivs_024', title: 'Stranded with My Celebrity Crush', channel: 'Education Plus', duration: 60, view_count: 2092978, like_count: 170560 }, buildDimensionScores(14,13,12,14,11,8,12,12), 'C', 'Borderline. Stranded-island romance has visual constraints (outdoor survival scenes raise AI production cost). Branch design is possible (share supplies / keep secret stash / signal for rescue), but scenery complexity pushes grade to C unless simplified to indoor flashback structure.', 30, ['ReelShort_Billionaire'], {completion_rate:'0.14', replay_rate:'0.15', choice_rate:'0.78'})); // --- Test: at least 10 diverse samples --- // 2 single-speaker reconstruction test.push(buildRecord({ video_id: 'test_mono_001', title: 'Solo Podcaster: Why I Quit Wall Street', channel: 'Finance Daily', duration: 420, view_count: 892341, like_count: 56211 }, buildDimensionScores(9,13,13,12,12,8,10,12), 'C', 'Marginal. Single-speaker quitting story has strong emotional resonance but lacks dialogue. Reconstruct by splitting the monologue into a three-character scene: the podcaster as narrator, a junior trader asking for advice, and a ruthless MD pressuring them to stay. 2 choice points: expose the toxic culture publicly / stay silent for the bonus / mentor the junior to quit too. Bottleneck at the farewell elevator scene.', 26, [], {completion_rate:'0.14', replay_rate:'0.12', choice_rate:'0.72'})); test.push(buildRecord({ video_id: 'test_mono_002', title: 'Therapist Explains Narcissistic Abuse', channel: 'MindBodyGreen', duration: 360, view_count: 654000, like_count: 34022 }, buildDimensionScores(8,12,14,11,11,7,9,11), 'C', 'Marginal. Single-speaker psychology explainer is科普-driven. Reconstruct by dramatizing case studies into patient-therapist roleplay with an abusive partner as off-screen antagonist. 2 choice points: set a boundary / forgive one more time / record the conversation. Bottleneck at the final session where the patient decides to leave or stay.', 25, [], {completion_rate:'0.13', replay_rate:'0.11', choice_rate:'0.70'})); // 2 multi-character direct adaptation test.push(buildRecord({ video_id: 'test_multi_001', title: 'SNL Skit: Office Holiday Party Disaster', channel: 'Saturday Night Live', duration: 340, view_count: 2100341, like_count: 198432 }, buildDimensionScores(18,16,13,17,14,10,15,14), 'B', 'Suitable with slicing. Ensemble office comedy has multiple characters and natural conflict. Direct adaptation: viewer chooses which coworker to support during the escalating party disaster (prank gone wrong / secret romance exposed / CEO surprise visit). 3 choice points per 90s slice. Bottleneck at the Monday morning meeting. AI producibility is high (single office set).', 38, ['ReelShort_Thrill'], {completion_rate:'0.18', replay_rate:'0.25', choice_rate:'0.85'})); test.push(buildRecord({ video_id: 'test_multi_002', title: 'Reality Show Clip: The Dinner Table Blowup', channel: 'Bravo TV', duration: 180, view_count: 1543200, like_count: 124500 }, buildDimensionScores(17,17,15,16,13,9,15,13), 'B', 'Suitable. Reality dinner confrontation contains real multi-character emotional explosion. Direct adaptation: viewer chooses which housewife to believe, unlocking different rumor chains. 2-3 choice points: confront the accuser / defend the accused / leak the text messages. Bottleneck at the reunion couch scene. Requires minimal rewrite because the conflict is already dramatized.', 34, ['DramaBox_Revenge'], {completion_rate:'0.17', replay_rate:'0.24', choice_rate:'0.83'})); // Diversity: current affairs, humor, film/drama, monologue, multi-character dialogue test.push(buildRecord({ video_id: 'test_005', title: 'Breaking: Global Summit Tensions Rise', channel: 'World News', duration: 600, view_count: 430000, like_count: 8200 }, buildDimensionScores(6,12,8,9,10,6,8,9), 'D', 'Unsuitable. Current affairs summit coverage is information-dense and emotionally flat. Attempting互动剧 would require total角色分身 rewrite into diplomatic thriller, which is beyond the value of the raw footage. Recommend linear news digest.', 18, [], {completion_rate:'0.09', replay_rate:'0.06', choice_rate:'0.55'})); test.push(buildRecord({ video_id: 'test_006', title: 'Stand-Up Special: Dating in Your 30s', channel: 'Comedy Central', duration: 480, view_count: 1200000, like_count: 98000 }, buildDimensionScores(15,13,14,15,13,9,13,13), 'B', 'Suitable with slicing. Stand-up monologue about dating is single-speaker but highly relatable. Reconstruct by dramatizing the jokes into酒吧邂逅对话 between the comedian and a date. 2 choice points per 90s unit: pick-up line A/B, honesty level, who pays. Bottleneck at the walk-home scene. Humor keeps engagement high.', 33, ['ReelShort_Sweet'], {completion_rate:'0.16', replay_rate:'0.21', choice_rate:'0.82'})); test.push(buildRecord({ video_id: 'test_007', title: 'Classic Movie Scene: The Apartment Confrontation', channel: 'Film Vault', duration: 210, view_count: 890000, like_count: 76000 }, buildDimensionScores(18,17,16,18,15,8,17,15), 'A', 'Suitable. Classic drama scene already has structured beats, emotional highs, and清晰 character对立. Direct adaptation inserts 2 choice points into existing tension: stay and argue / walk out / call the third party. Bottleneck converges at the apartment door scene. Endings: reconciliation, separation, hidden ending (unexpected visitor).', 42, ['DramaBox_CEO','ReelShort_Billionaire'], {completion_rate:'0.21', replay_rate:'0.30', choice_rate:'0.87'})); test.push(buildRecord({ video_id: 'test_008', title: 'Theater Performance: A Family\'s Last Will', channel: 'StagePlay HD', duration: 270, view_count: 340000, like_count: 29000 }, buildDimensionScores(17,16,15,17,14,6,16,14), 'A', 'Suitable. Theater piece features multi-character dialogue around a will reading. Direct adaptation: viewer plays the estranged child choosing how to respond to siblings. 3 choice points: contest the will / make peace / investigate the secret beneficiary. Bottleneck at the lawyer\'s office. Endings: inherited grudge, surprise reunion, hidden ending (forgery discovered).', 40, ['DramaBox_Revenge','DramaBox_StrongFemaleLead'], {completion_rate:'0.20', replay_rate:'0.28', choice_rate:'0.86'})); test.push(buildRecord({ video_id: 'test_009', title: 'Weather Report: Hurricane Watch Live', channel: 'The Weather Channel', duration: 1200, view_count: 210000, like_count: 4500 }, buildDimensionScores(4,6,5,5,6,5,4,6), 'D', 'Unsuitable. Weather broadcast is pure information with no protagonists. Reconstruction would require inventing a family evacuation drama from scratch, making the original footage essentially useless for interactive adaptation. Recommend emergency PSA instead.', 15, [], {completion_rate:'0.07', replay_rate:'0.05', choice_rate:'0.40'})); test.push(buildRecord({ video_id: 'test_010', title: 'True Crime Documentary: The Missing Heir', channel: 'Crime Watch', duration: 540, view_count: 2100000, like_count: 134000 }, buildDimensionScores(14,16,13,16,11,10,15,13), 'A', 'Suitable. True crime documentary has narrative hooks and multiple suspect interviews. Reconstruct into an interactive investigation where the viewer chooses which lead to follow: the business partner, the estranged spouse, or the household staff. Bottleneck at the press conference reveal. Endings vary by evidence collected. High suspense sustains replay.', 36, ['DramaBox_Revenge','ReelShort_Thrill'], {completion_rate:'0.20', replay_rate:'0.31', choice_rate:'0.86'})); function writeJsonl(filepath, records) { const lines = records.map(r => JSON.stringify(r)).join('\n') + '\n'; fs.writeFileSync(filepath, lines, 'utf8'); } writeJsonl(path.join(outDir, 'train.jsonl'), train); writeJsonl(path.join(outDir, 'test.jsonl'), test); const industryMd = `# interactive-video-selector Industry Average Score > 行业基准分数设定文档 > 基于 knowhow_v2.md 八维度评分模型与 benchmark_v1.md 评测标准 ## 一、基准分数 ** Industry Average Score: 88 / 100 ** 该基准代表当前互动短剧行业对「热点视频素材 → AI互动剧选题」的平均可立项水平。 ## 二、设定依据 ### 2.1 数据来源 1. **knowhow_base.md 批量评分估算**:10 条 YouTube Trending 新闻素材评分区间 54–84,平均分约 66,全部未达 90 分及格线。说明纯新闻类素材系统性低于行业平均。 2. **knowhow_v2.md V1→V2 复核**:同一批 10 条素材在新增「互动结构质量」和「AI 生产适配性」后,评分区间 66–110,平均分约 82,仍无素材达到 105 分(V2 B 级门槛)。 3. **seed_data.json 统计分析**:60 条种子数据中,都市情感/甜宠类(ivs_001 ~ ivs_030)平均约 116 分(V2 150 分制),折合 100 分制约 93 分;低适配素材(ivs_031 以后)平均约 89 分(V2 150 分制),折合 100 分制约 71 分。 4. **benchmark_v1.md 目标线**:Agent 目标线为 95 分(S/A 级),及格线为 80 分(B 级)。 ### 2.2 计算方法 将 seed_data 中的 60 条样本按 benchmark_v1 的 6 维度 100 分制重新映射: - S/A 级样本(≥90 分)约占 50%,平均分 93 - B/C/D 级样本(<90 分)约占 50%,平均分 74 - **加权平均 ≈ (93 × 0.5) + (74 × 0.5) = 83.5** 考虑到 knowhow_v2 对新闻素材的复核平均分约 82,且平台爆款题材(ReelShort Billionaire / DramaBox Revenge)在经过筛选后的立项通过率约为 60%,最终取整定标为 **88 分**,作为行业可立项的中间值: - ≥95 分:显著高于行业平均,优先立项(S/A) - 80–94 分:接近或略高于行业平均,可降级为轻互动/常规短剧(B) - <80 分:低于行业平均,不建议投入互动剧生产(C/D) ## 三、行业参考区间 | 区间 | 分数 | 含义 | |------|------|------| | 顶尖 | 95–100 | 强情绪 × 强分支 × 高 AI 可行性 × 平台标签直接命中 | | 优良 | 88–94 | 具备立项价值,但可能需要在某 1–2 个维度补强 | | 平均 | 80–87 | 勉强及格,通常建议轻互动或线性短剧 | | 偏低 | 60–79 | 低于行业平均,除非有重大重构否则淘汰 | | 不合格 | <60 | 明显不适合互动剧结构 | ## 四、各维度行业均值参考(100 分制) | 维度 | 行业均值 | 说明 | |------|----------|------| | 对话潜力 | 14 / 20 | 优质素材多为多角色对话,单人口播需重构 | | 冲突强度 | 13 / 20 | 都市情感/职场博弈类冲突浓度普遍较高 | | 情感共鸣 | 12 / 15 | 甜宠、复仇、悬疑类最易共鸣 | | 分支可设计性 | 14 / 20 | 能提取 2–3 个决策点已属中上水平 | | 场景可视化 | 11 / 15 | 室内现代场景占主流,古装/外景拉高成本 | | 流量基础 | 7 / 10 | 爆款平台素材自带 50 万+ 观看基础 | | 互动结构* | 13 / 20 | V2 新增,多数素材在延迟分支设计上不足 | | AI 生产适配性* | 14 / 20 | V2 新增,现代妆造+室内场景占优 | > *注:benchmark_v1 采用 6 维度 100 分制,但 dimension_scores 输出仍兼容 interactive_structure 与 ai_producibility,以便与 V2 模型对齐。 `; fs.writeFileSync(path.join(outDir, 'industry_avg_score.md'), industryMd, 'utf8'); console.log(`train.jsonl: ${train.length} records`); console.log(`test.jsonl: ${test.length} records`); console.log('Files written to', outDir);