# 企业尽调舆情采集

## L0

输入企业名称，通过抖音指数（热度趋势）+ 抖音精选（负面素材）+ WebSearch（全网新闻）三渠道采集舆情，输出尽调舆情报告（负面风险清单/正面亮点/情感概览/综合判断）。

## L1 概述

- **目的**：回答尽调核心问题——有没有负面舆情？有没有诉讼/处罚报道？产品质量有没有问题？高管有没有负面？舆论形象如何？
- **三渠道分工**：

| 渠道 | 尽调用途 | 采集方式 |
|---|---|---|
| **抖音指数** | 舆论热度量化（时间序列，看是否近期发酵） | Kimi WebBridge 访问巨量算数 |
| **抖音精选** | 具体负面内容素材（投诉视频/维权曝光/质量吐槽） | Kimi WebBridge 搜索抖音 |
| **WebSearch** | 全网负面新闻/法院公告/监管处罚/消费者投诉 | DesireCore 内置 WebSearch |

- **前置依赖**：Kimi WebBridge daemon 运行中（`127.0.0.1:10086`）+ 浏览器扩展已连接

## L2 详细操作

### 数据源一：抖音指数（企业名热度趋势）

#### 访问方式

```
URL: https://trendinsight.oceanengine.com/arithmetic-index/analysis/keyword?keyword={企业简称}&appName=aweme
方法: Kimi WebBridge 浏览器自动访问页面并提取内容
注意: URL 参数化访问，不触发验证码。不要尝试在搜索框输入文字。
```

#### 尽调关键词策略

| 尽调维度 | 搜索关键词 |
|---|---|
| 舆论整体热度 | `{企业简称}` |
| 负面热度 | `{企业简称} 负面` |
| 投诉热度 | `{企业简称} 投诉` |

#### 尽调判断要点

- **热度骤升**：近期热度陡增（环比 >200%）→ 可能存在负面事件发酵，需重点排查
- **热度平稳**：无异常波动 → 舆论风险较低
- **长期高热**：知名企业的常态，需结合内容素材判断正负

### 数据源二：抖音精选（负面内容素材）

#### 访问方式

```
URL: https://www.douyin.com/search/{企业简称}?type=video
方法: Kimi WebBridge 搜索抖音，提取视频标题/作者/点赞数/评论数
注意: 用企业简称搜索（全名命中率低）；优先看点赞/评论高的视频（传播广=影响大）。
```

#### 尽调采集字段

- 视频标题（判断是否负面：投诉/维权/曝光/质量/欺骗/跑路）
- 点赞数 / 评论数（传播广度 = 负面影响程度）
- 作者昵称（个人吐槽 vs 媒体报道 vs 竞品抹黑）
- 发布时间（近期 vs 历史）

#### 负面视频筛选标准

| 信号词 | 风险等级 |
|---|---|
| 投诉 / 维权 / 欺骗 / 诈骗 / 跑路 | 🔴 高 |
| 质量 / 召回 / 不合格 / 假货 | 🔴 高 |
| 欠薪 / 辞退 / 仲裁 | 🟡 中 |
| 吐槽 / 差评 / 不满 | 🟡 中 |
| 正面宣传 / 获奖 / 创新 | 🟢 正面 |

### 数据源三：WebSearch（全网尽调舆情）

#### 搜索关键词组合（按尽调维度）

```python
# 高优先级（必查）
search_queries_high = [
    "{企业名} 负面 OR 投诉 OR 维权 OR 欺骗 OR 跑路",
    "{企业名} 起诉 OR 法院 OR 被告 OR 被执行 OR 失信",
    "{企业名} 处罚 OR 违规 OR 罚款 OR 整改 OR 通报批评",
]

# 中优先级（建议查）
search_queries_mid = [
    "{企业名} 质量 OR 召回 OR 不合格 OR 安全事故",
    "{企业名} 老板 OR 法人 OR 总经理 丑闻 OR 被查 OR 被抓",
    "{企业名} 欠薪 OR 辞退 OR 劳动仲裁 OR 工伤",
]

# 低优先级（正面对照）
search_queries_low = [
    "{企业名} 获奖 OR 创新 OR 认定 OR 排名",
]
```

#### 采集字段

- 新闻标题 / 来源网站 / 发布时间 / 摘要 / 原文链接
- **注意**：区分企业作为**原告**（维权，非负面信号）vs **被告**（被诉，负面信号）

### Step 1：三渠道采集执行

1. **WebSearch 尽调搜索**（先执行，信息量最大）：按高/中/低优先级逐组搜索，收集新闻标题+来源+日期+摘要
2. **抖音指数热度**：访问巨量算数查企业简称热度趋势，判断是否近期发酵
3. **抖音精选内容**：搜索抖音视频，按负面信号词筛选高互动视频

### Step 2：LLM 后处理（情感分析 + 风险分级）

对采集到的原始内容执行：

| 分析步骤 | 说明 |
|---|---|
| **情感分类** | 每条标注：正面 / 中性 / 负面 |
| **风险分级** | 负面内容分：高（诉讼被告/处罚/跑路/安全事故）/ 中（投诉/质量吐槽/劳资）/ 低（一般差评） |
| **事件归并** | 同一事件的多条报道归并为一条（以最早报道为准） |
| **原被告区分** | 企业作为原告的维权诉讼**不是**负面风险信号 |
| **时效判断** | 近 3 个月的负面标记"近期"，更早的标记"历史" |

### Step 3：输出尽调舆情报告

```json
{
  "query_status": "success",
  "source": "multi-source-sentiment",
  "company_name": "{企业名}",
  "sentiment_overview": {
    "overall_assessment": "正面 | 中性偏正 | 中性 | 中性偏负 | 负面 | 高风险",
    "negative_ratio": "15%",
    "neutral_ratio": "60%",
    "positive_ratio": "25%",
    "trend": "稳定 | 近期发酵 | 持续负面"
  },
  "negative_risks": [
    {
      "risk_type": "诉讼报道(被告) | 行政处罚 | 产品质量 | 高管负面 | 劳资纠纷 | 消费者投诉 | 经营异常",
      "event_title": "……",
      "event_date": "YYYY-MM-DD",
      "recency": "近期 | 历史",
      "source_url": "https://……",
      "severity": "高 | 中 | 低",
      "summary": "1-2 句事件摘要"
    }
  ],
  "controversies": [
    {
      "event_title": "……",
      "description": "争议双方与焦点",
      "status": "发酵中 | 已平息 | 官方已回应"
    }
  ],
  "positive_highlights": [
    "获奖/创新/贡献等正面事件（一句话）"
  ],
  "sentiment_summary": "3-5 句舆情综合判断：整体舆论形象、主要负面及严重程度、是否近期发酵、尽调建议",
  "data_sources_used": ["websearch", "douyin-index", "douyin-featured"],
  "collection_time": "ISO8601"
}
```

## 质量标准

- **数据真实性**：所有舆情内容必须来自实际采集（WebSearch 结果 / 抖音页面），绝不编造
- **来源可溯**：每条负面风险必须附 source_url
- **原被告区分**：企业作为原告的诉讼报道不列入负面风险（单独归类为"涉诉动态"）
- **时效标注**：每条负面标注"近期"（3 个月内）或"历史"
- **不做绝对结论**：舆情是辅助信号，报告末尾注明"舆情仅为尽调参考维度之一，需结合工商/司法/财务数据综合判断"

## 错误处理

| 场景 | 处理方式 |
|---|---|
| 抖音指数页面无法访问 | 跳过该源，用 WebSearch + 抖音精选补充，报告中注明"热度数据缺失" |
| 抖音搜索需登录 | 跳过该源，WebSearch 补充搜索 `{企业名} 抖音 负面` |
| WebSearch 无结果 | 该维度标注"未检索到相关负面"，属正面信号 |
| 负面信息量极大 | 只取前 10 条高严重度条目，其余归入计数 |

## 已知限制

- **非实时**：依赖搜索引擎收录与抖音页面展示，存在小时级~天级延迟（非 7×24 实时监测——持续监测需商业舆情 API）
- **情感分析靠 LLM**：无专用情感模型，由 LLM 后处理推断（准确率约 85-90%，边界案例可能误判）
- **抖音覆盖**：微信公众号/微博/小红书等平台内容仅能通过 WebSearch 间接覆盖（非全平台直达）
- **企业全名 vs 简称**：WebSearch 用全名（精确），抖音用简称（命中率）；两者结果可能有差异

## 故障排查

| 问题 | 原因 | 处理 |
|---|---|---|
| WebBridge daemon 不可达 | daemon 未运行 | `~/.kimi-webbridge/bin/kimi-webbridge.exe start` |
| 巨量算数页面空白 | JS 渲染未完成 | 等 5 秒后 evaluate 读 innerText |
| 抖音搜索页无结果 | 需登录 / 简称不匹配 | 跳过，WebSearch 补充 |
| WebSearch 结果全是正面 | 负面词组合不当 | 换用具体负面词（如"被处罚"而非"处罚"） |
