制造业B2B的AI可见性监控架构:用 Python 定时探测 DeepSeek、豆包引用率并生成周报
制造业B2B的AI可见性监控架构:用 Python 定时探测 DeepSeek、豆包引用率并生成周报
发布日期:2026-09-13 适用读者:制造业 B2B 数字化负责人、需要向老板汇报 GEO 效果的技术团队
制造业 B2B 做 GEO 最尴尬的时刻,是老板问"GEO 做了三个月,效果呢",而你只有一句"感觉有被引用"。GEO 的问题池、探测频率、引用判定,全都没有现成工具,于是我们自己搭了一套 AI 可见性监控系统:每周自动向 DeepSeek、豆包、Kimi 提问 120 个行业问题,解析引用来源,输出趋势周报。这套系统跑了两个多月,本文把架构和关键实现完整拆出来。
一、为什么必须自建监控
市面上的 GEO 工具大多面向欧美引擎(ChatGPT、Perplexity),对 DeepSeek、豆包、Kimi 覆盖不足;而且 B2B 获客的关键不是泛流量,是在"如何选择供应商""XX 设备哪家参数靠谱"这类选型问题里被提到。这决定了问题池必须按自家产品线定制。
二、总体架构
┌────────────┐ ┌──────────────┐ ┌─────────────┐ ┌────────────┐
│ 问题池管理 │ → │ 定时探测调度器 │ → │ 引用解析引擎 │ → │ SQLite 存储 │
│ (YAML 维护) │ │ (APScheduler) │ │ (域名+实体) │ │ │
└────────────┘ └──────────────┘ └─────────────┘ └─────┬──────┘
↓
周报生成(Markdown/邮件) ←──── 汇总聚合
四个模块各自独立,探测失败不影响报告生成。选 SQLite 是因为单机日均数据量不到 1 万行,别为几百行数据上 MySQL 集群。
三、问题池设计
问题池用 YAML 维护,市场和研发都能改:
# questions.yaml —— 按产品线组织的探测问题
product_lines:
- name: "CNC加工中心"
questions:
- "国内五轴CNC加工中心哪些厂家口碑好"
- "采购立式加工中心主要看哪些参数"
- "{brand}的加工中心怎么样"
- name: "钣金件"
questions:
- "激光切割钣金件定制找什么类型的供应商"
两点经验:
- 必须有
{brand}占位符的直问题。它衡量的是"品牌词 AI 可答性"——如果连公司名 AI 都说不出所以然,说明基础信息层还有硬伤。 - 问题池要分稳定题(每周固定)和轮换题(每月换一批),稳定题保证趋势曲线连续,轮换题防止探测面过窄。
四、探测与引用解析
核心探测逻辑(简化版),重点在引用解析:
import requests, json, re
from datetime import datetime
ENGINES = {
"deepseek": {"url": "https://api.deepseek.com/chat/completions",
"model": "deepseek-chat"},
}
def probe(engine_cfg, api_key, question: str) -> str:
resp = requests.post(
engine_cfg["url"],
headers={"Authorization": f"Bearer {api_key}"},
json={
"model": engine_cfg["model"],
"messages": [{"role": "user", "content": question}],
"temperature": 0, # 引用探测必须关随机性
}, timeout=60)
resp.raise_for_status()
return resp.json()["choices"][0]["message"]["content"]
def extract_citations(answer: str, own_domains: set[str]) -> dict:
urls = set(re.findall(r"https?://([a-zA-Z0-9.\-]+)", answer))
return {
"brand_mentioned": brand_in(answer), # 品牌实体匹配
"own_domain_cited": bool(urls & own_domains),
"competitor_domains": sorted(urls - own_domains),
"cited_at": datetime.now().isoformat(),
}
三个实现细节值得强调:
temperature=0+ 固定问题是引用探测可信度的底线,否则同题两次回答都能差出十万八千里。- 品牌实体匹配不能只匹配公司全名。注册名、产品品牌、简称都要进实体表做模糊匹配,B2B 企业经常出现"品牌名 ≠ 公司名"。
- 竞品域名清单本身是资产。AI 回答里反复出现的竞品站,就是你内容建设对标的靶子——这个副产品价值经常超过监控本身。
五、周报与告警
周报固定四个板块:品牌引用率趋势(分引擎)、直问品牌题的回答质量抽检、竞品引用 TOP10、本周新出现的引用页面。引用率连续两周环比下滑超 30% 触发告警,提醒去检查是不是官网改版动了结构化数据——我们真被抓到过一次:某次改版把 JSON-LD 注入弄丢了,第三周曲线应声下坠,比人工发现早了两周。
六、运行两个多月的数据
该系统服务一个设备制造企业官网,数据为其自有观测结果:
| 指标 | 第 1 周 | 第 10 周 |
|---|---|---|
| 品牌引用率(120 问/周,三引擎合计) | 6.7% | 21.6% |
| 直问品牌题可准确回答比例 | 50% | 92% |
| 竞品引用 TOP10 重合度( competitor 集中在 3 家) | 高 | 明显分散 |
| 发现并修复的技术问题 | — | 4 个(Schema丢失/robots误拦等) |
要强调:引用率提升不能全归功于监控,监控只是让"每次内容/技术改动都有数据反馈"成为可能,真正起效的是根据竞品引用池做的内容补强。GEO 是迭代出来的,不是一次改造出来的。
七、趋势预判与收尾
往后看,AI 可见性监控会从"自建脚本"走向两类形态:一是监测厂商的标准产品,二是搜索引擎后台直接提供 AI 引用数据(类似 Search Console 的进化)。但在成熟工具普及之前,一套 200 行的 Python 探测脚本能给你的决策提供比"感觉"可靠得多的依据。
架构上最后收个尾:问题池决定探测广度,temperature=0 决定数据可信度,周报决定这套系统能不能影响业务决策——三者齐了,GEO 才从玄学变成工程。如果你也在做 AI 引用监测,评论区可以交流问题池的组织方式和各家引擎的接口差异。
关键词:AI可见性监控、GEO数据看板、DeepSeek API 探测、品牌引用率、制造业B2B获客、AI优化AIO、竞品引用分析、Python 定时任务