task1 完成 #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "task1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
功能 - crawl_gate.py:跨进程爬取互斥门闩(SQLite BEGIN IMMEDIATE 单行 lease + preempt 表;心跳 20s / 假死 75s 强抢 / 协作式让出) - tracker_store.py / tracker_worker.py:话题跟踪状态库与独立 worker 进程 (每 60min 空闲抢占一轮,preempt 检测中止让出手动分析) - pipeline.run_staged_crawl:抽取公共编排(Stage① sweep 并发 + 屏障 + Stage② enrich),手动 run_dual 与 worker 复用;SSE 事件形状不变 - crawler_runner:crawl_session(kind) 双层锁 + abort_event 支持 - /api/tracker/{start,stop,status}(仅 1 话题,新话题自动替换,立即首轮) - AnalyzeRequest.autoCrawl 透传:false = 读库直出(run_enrich 纯读库 + LLM, 跟踪态汇总用),友好错误文案 - 前端:SearchPanel 跟踪开关(按钮变「开始跟踪」)、TrackStatusBar 状态卡/ 细条、LoadingState readonly 分支、App 10s 轮询集成 - start-local.bat/.sh 集成 worker 窗口;新增 start-tracker.bat 修复与卫生 - SearchPanel 输入=正在跟踪话题时自动勾选(watch 双向同步) - README/backend-README 消除遗留 git 冲突标记并更新至双模+跟踪现状 - .gitignore:MediaCrawler sqlite 运行库(db/wal/shm/journal)与 .workbuddy/ - 解除误跟踪的 sqlite_tables.db-wal/-shm 测试:新增 33(gate/store/worker/autocrawl 离线夹具),全量 85 passed需求:高频词统计显示换成词云(选合理词数);「大家怎么看」板块细分情绪 尚未落地——前端 SentimentDonut 早已写好 sentiment.emotions 渲染,但后端 从未产出该字段,Pydantic 默认丢弃 → 板块恒空。 后端: - nlp.extract_keywords_weighted:jieba TF-IDF withWeight 透出分数, topK 放量 2 倍再滤停用词/单字,保证取满 24 - stats.compute_stats:① 对每条文本 detect_emotions(词典 8 类,可多标签) Counter 聚合 → emotions[{label, value, color}](命中占比 1-100、按命中数降序 取前 6、色取词典预置主题色);② 产出 keywordCloud[{word, weight}] ≤24, 保留 keywords 字符串供 summarizer/旧契约 - schemas:SentimentSummary 加 emotions: list[EmotionItem](value 0-100 + color);StatsBlock 加 keywordCloud: list[KeywordCloudItem](word+weight) - analyzer:StatsBlock 组装透传 keywordCloud(SentimentSummary(**senti) 自动带上 emotions) - tests:细分情绪分布 + 词云带权两个专项测试(占比降序/<=100/#色/权重降序/ 与 keywords 同源首词一致),全套 118 passed 前端: - OpinionTags:高频词块改词云——字号 12-26px 随 sqrt(weight/max) 映射(平方根 压缩 TF-IDF 长尾避免 90% 词挤最小字号),4 档主题色阶(深青→墨→中灰→浅灰), hover 上浮变主题色;旧 keywords 字符串自动回落兜底 - SentimentDonut:emotions 空时显示「暂无细分情绪」空态(旧数据/无命中不白屏) - mockAnalysis normalize 透传 keywordCloud 与 emotions 默认值 冒烟(Playwright DOM 断言):24 词取满、10 档字号梯度、最高权词 26px+主题色、 情绪 6 条占比降序渲染、空态文案正常、无 console error