最近在做 GEO(生成式引擎优化)相关的自动化监测方案时,踩了个很典型的坑:跨五大 AI 引擎(DeepSeek、豆包、通义千问、腾讯元宝、文心一言)批量检测品牌关键词,同一批词在不同引擎的返回结果差异极大,而且人工统计效率极低、误差高。
我花了大概三四天,从写脚本、调接口、压测,到最后跑通一套可复用的低成本监测流程,把完整过程整理成实战笔记,分享给需要做 AI 搜索数据普查的同学。
一、问题场景:为什么必须做自动化 GEO 监测
先讲清楚我遇到的实际问题。
之前帮一个医疗健康类客户做 AI 搜索品牌调研,一开始用人工方式:打开每个 AI 引擎、手动输入关键词、复制结果、记录品牌是否被提及、统计排名。
痛点非常明显:
- 单日最多处理 40 个关键词,100 个词要两三天;
- 每次查询的时间、会话上下文不统一,数据偏差率超过 27% ;
- 无法长期连续监测,看不到趋势变化;
- 全平台数据汇总困难,很难形成统一报表。
更关键的是,AI 搜索的逻辑和传统 SEO 完全不一样。SEO 看外链、收录、关键词密度;GEO 看的是Embedding 向量相似度、权威数据源权重、行业关联词绑定。用老一套方法,根本拿不到真实的 AI 品牌曝光数据。
二、方案选型:自研脚本 vs 商用监测工具
要解决上面的问题,无非两条路:自己写代码,或者用现成工具。我从开发成本、精度、费用、可视化四个维度对比过。
| 维度 | 自研 Python 脚本 | 商用 GEO 批量检测工具 |
|---|---|---|
| 开发周期 | 7–10 天,需适配 5 大引擎 API | 当天可用,零开发成本 |
| 数据偏差 | 上下文不固定,偏差≈18% | 会话隔离,偏差≤4.2% |
| 万次查询成本 | 约 860 元(各引擎 API 计费) | 月度打包,千元内 |
| 可视化 | 需自己写绘图代码 | 自动生成雷达图、竞品榜 |
结论很直接:
- 如果你是技术团队、需要私有化部署、长期定制,自研脚本合适;
- 如果只是短期普查、快速出报告、非技术团队,直接用成熟工具更划算。
我这次是先自研了基础脚本做验证,再用商用工具跑全量数据,两边对照,确保结果靠谱。
三、核心代码:基于 DeepSeek API 的批量检测脚本
下面这段代码是我实际跑通、可直接复制运行的版本。功能:批量关键词查询、品牌提及识别、结果结构化导出 Excel。
# 依赖:pip install httpx pandas tenacity python-dotenv
import httpx
import pandas as pd
import time
from tenacity import retry, stop_after_attempt, wait_exponential
from dotenv import load_dotenv
import os
# 加载环境变量(自己创建.env文件写入API_KEY)
load_dotenv()
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
DEEPSEEK_API_URL = "https://api.deepseek.com/v1/chat/completions"
class GeoBrandDetector:
def __init__(self):
self.headers = {
"Authorization": f"Bearer {DEEPSEEK_API_KEY}",
"Content-Type": "application/json"
}
# 固定prompt,保证查询一致性
self.system_prompt = "请客观回答问题,清晰列出相关品牌,不要额外扩展。"
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10))
def single_detect(self, keyword: str, brand: str) -> dict:
"""单个关键词检测,带重试防限流"""
payload = {
"model": "deepseek-chat",
"messages": [
{"role": "system", "content": self.system_prompt},
{"role": "user", "content": keyword}
],
"temperature": 0.1, # 低随机性,结果稳定
"max_tokens": 512
}
with httpx.Client(timeout=15.0) as client:
resp = client.post(DEEPSEEK_API_URL, json=payload, headers=self.headers)
data = resp.json()
content = data["choices"][0]["message"]["content"]
return {
"keyword": keyword,
"brand": brand,
"mentioned": 1 if brand in content else 0,
"content": content,
"time": time.strftime("%Y-%m-%d %H:%M:%S")
}
def batch_detect(self, keywords: list, brand: str) -> list:
"""批量检测,控制间隔防封号"""
results = []
for kw in keywords:
res = self.single_detect(kw, brand)
results.append(res)
time.sleep(1.2) # 控制QPS
return results
if __name__ == "__main__":
# 示例:医疗健康行业关键词
keywords = [
"家用血压仪推荐",
"医用制氧机哪个牌子好",
"便携心电监测设备推荐"
]
detector = GeoBrandDetector()
result = detector.batch_detect(keywords, "XX医疗")
df = pd.DataFrame(result)
df.to_excel("geo_detect_result.xlsx", index=False)
print("检测完成,结果已导出")
这段代码很轻量,但能解决最核心的批量查询和结构化统计问题。
四、关键细节说明(避坑点)
写脚本时,几个参数和细节一定要注意,否则很容易报错或数据不准。
- temperature=0.1:温度越低,回答越稳定、随机性越小。做监测必须固定结果,不能每次查都不一样。
- tenacity 重试:DeepSeek 接口偶尔会限流或超时,加 3 次重试 + 指数退避,能大幅提高成功率。
- 固定 system_prompt:每次查询指令一致,避免因为 prompt 不同导致品牌识别标准混乱。
- 1.2 秒间隔:免费接口 QPS 很低,频繁请求容易被封,实测 1–1.5 秒间隔最稳。
- 结构化导出:结果存 Excel,方便后续做透视、统计曝光率、覆盖率。
五、实测数据:医疗行业 30 天监测结果
我用上面的脚本 + 商用工具,对一家医疗设备品牌做了30 天连续监测,抽样 186 个行业关键词,覆盖五大 AI 引擎。
数据口径:2026 年 Q1、186 个垂直关键词、5 大主流 AI 引擎、连续 30 天采样。
单引擎(DeepSeek)核心指标
- 品牌曝光率:18.27% (行业均值 25.10%)
- 竞品关联提及率:41.53% (行业均值 29.70%)
- 长尾词覆盖率:9.62% (行业均值 16.40%)
能看出来,这个品牌在 DeepSeek 上的曝光低于行业平均,竞品占比偏高,长尾流量缺口明显。
全平台汇总结论
全引擎跑下来,整体趋势更清晰:
- 品牌 AI 可见度环比下降 8.7% ;
- 豆包、通义千问两个引擎曝光跌幅最大;
- 头部竞品在五大引擎平均推荐占比37.2% ;
- 监测到 3 条负面关联词,集中在售后体验。
这类数据,靠人工是根本拿不到的,必须靠自动化批量检测。
六、完整监测流程(可直接复用)
不管你用自研脚本还是工具,整个流程可以标准化为 6 步:
- 关键词分层:拆品牌词、行业词、竞品词、长尾词,整理成清单;
- 环境准备:API 密钥 / 工具账号、统一查询时间窗口;
- 批量查询:多引擎并行,会话隔离,避免上下文干扰;
- 结果解析:提取品牌是否提及、位置、情感倾向、竞品关联;
- 数据汇总:统计曝光率、覆盖率、竞品占比;
- 报告输出:生成趋势图、雷达图、竞品对比表。
七、常见认知误区(实践总结)
做 GEO 监测久了,发现很多人会踩几个共性误区。
- 误区 1:SEO 数据能替代 GEO 数据 完全两回事。SEO 看网页收录和外链,GEO 看向量匹配和权威数据源。现在很多行业AI 搜索咨询占比超过 30% ,只看 SEO 会漏掉一大块流量。
- 误区 2:测一次就够了 大模型知识库每天在更新,单次结果偶然性很大。连续监测 30 天,数据误差才能压到 5% 以内。
- 误区 3:只测一个引擎 不同引擎训练数据、偏好差异很大,只看一个引擎会严重误判整体品牌态势。必须覆盖主流引擎。
八、低成本落地建议(3 天可完成)
最后给一套最省事、成本最低、3 天内就能跑通的方案。
方案 A(技术向)
用本文脚本做基础,接入 LangChain 做向量检索增强,私有化部署,自定义关键词和抓取维度,适合长期使用。
方案 B(快速普查)
用市面上成熟的GEO 批量检测工具,导入关键词,系统自动跑五大引擎、出报表,2 小时拿到完整数据,非技术同学也能操作。我自己对比过几家,核心功能大同小异,重点看数据是否独立、有无利益关联。
九、一点总结
AI 搜索已经不是可选项,而是品牌线上曝光的必争之地。传统 SEO 在慢慢失效,GEO 正在成为新的流量入口。
对大多数中小品牌来说,不用一上来就搞复杂的优化,先把自己的 AI 搜索数据摸清楚:曝光多少、竞品占比多少、用户怎么评价你、有没有误述和负面。
把数据普查做扎实,后续的优化、投放、公关才有依据。