GEO state report 是一个用于追踪品牌在大型语言模型(LLM)中可见性的技能,通过 Bright Data 数据集自动收集数据并生成 HTML 报告。
用途
该技能帮助用户定义对其业务重要的提示词,从主流 LLM 体验(ChatGPT、Perplexity,可选 Gemini)收集结果,并生成包含行动建议的 HTML 报告。Bright Data API 是自动化收集的强制要求。
主要能力
- 定义与业务相关的提示词(初始 2-10 条)。
- 从 ChatGPT、Perplexity 和/或 Gemini 收集 LLM 响应。
- 分析品牌在 LLM 中的可见性:被引用、被提及或不可见。
- 生成包含优先行动建议的 HTML 报告。
- 提供 fan-out 查询洞察、来源分解(UGC、YouTube、网页)、竞品提及分析。
使用方式
输入收集
- 品牌/网站:目标域名(如 example.com)、品牌词(如产品名、创始人名)、竞品域名(可选)。
- 提示词列表(初始 2-10 条)。
- 国家/语言。
必需工具
- BRIGHTDATA_API_KEY 环境变量(或由用户提供)。
- 每个计划运行的聊天机器人对应的 Bright Data 数据集 ID。
数据集 ID(固定不变):
- CHATGPT_DATASET_ID = "gd_m7aof0k82r803d5bjm"
- PERPLEXITY_DATASET_ID = "gd_m7dhdot1vw9a7gc1n"
- GEMINI_DATASET_ID = "gd_mbz66arm2mf9cu856y"
重要:运行脚本前,询问用户要运行哪些聊天机器人(ChatGPT、Perplexity、Gemini),可选择一个、两个或全部三个。仅将所选聊天机器人的数据集 ID 传递给脚本。
API 密钥安全说明
- 避免在聊天消息或代码中暴露 BrightData API 密钥。
- 检查密钥是否存在:运行脚本前,检查 BRIGHTDATA_API_KEY 是否已在环境中设置:
if [ -z "$BRIGHTDATA_API_KEY" ]; then echo "Not set"; else echo "Set"; fi - 如果密钥未设置:要求用户自行导出,步骤如下:
- 访问 https://brightdata.com 并登录。
- 导航到账户设置/API 部分。
- 如需要,生成新的 API 密钥。
- 在终端运行:export BRIGHTDATA_API_KEY="your-key-here"
- 不要在聊天中粘贴密钥——用户应自行运行导出命令,但如果他们粘贴了,就直接使用(已经太晚了)。
- 永远不要读取或显示密钥:如需验证是否设置,仅检查变量是否存在(非空),绝不回显或显示其值。
- 如果缺失:停止并让用户使用上述导出命令设置。
收集脚本(Python)
使用:geo-state-report/scripts/brightdata-geo.py
脚本功能:
- 触发数据集(第 1 部分)。
- 轮询直到就绪(第 2 部分)。
- 下载快照。
- 将结果保存到 results.json(HTML 报告不由脚本生成)。
输出结构:所有文件保存在指定 --out-dir 内的日期文件夹(YYYY-MM-DD)中:
- {out-dir}/{YYYY-MM-DD}/results.json - 完整结果数据
- {out-dir}/{YYYY-MM-DD}/snapshots/{chatbot}.json - 每个聊天机器人的快照元数据
- {out-dir}/{YYYY-MM-DD}/raw/{chatbot}-{snapshot_id}.json - 原始快照数据
- {out-dir}/{YYYY-MM-DD}/report.html - HTML 报告(由 AI 生成,见下文)
示例运行:
# 确保 BRIGHTDATA_API_KEY 已设置(用户应自行导出)
python3 geo-state-report/scripts/brightdata-geo.py \
--check-url "https://example.com" \
--prompts-file prompts.txt \
--chatgpt-dataset-id "gd_m7aof0k82r803d5bjm" \
--perplexity-dataset-id "gd_m7dhdot1vw9a7gc1n" \
--gemini-dataset-id "gd_mbz66arm2mf9cu856y" \
--target-domains "example.com" \
--brand-terms "Example,Example Product" \
--out-dir ./geo-run
# 文件将保存在:./geo-run/2025-01-15/(或当前日期)
注意:仅包含用户所选聊天机器人(ChatGPT、Perplexity 和/或 Gemini)的数据集 ID 标志。
执行后分析
脚本成功完成后,必须:
- 从日期输出文件夹读取 results.json 文件。
- 分析数据并提供初步结论,包括:
- 整体可见性摘要(被引用 vs 被提及 vs 不可见)。
- 哪些聊天机器人对品牌表现最好/最差。
- 跨提示词的关键模式(例如哪些提示词被引用,哪些没有)。
- Fan-out 查询洞察(建议了哪些相关查询)。
- 来源分解洞察(UGC vs YouTube vs 网页主导)。
- 竞品提及(如有)。
- 基于数据的最高优先级行动。
- 在同一日期输出文件夹生成 HTML 报告(report.html):
- 基于实际 results.json 数据创建美观、定制化的 HTML 报告。
- 遵循下文“输出要求”部分的定制指南。
- 保存到 {out-dir}/{YYYY-MM-DD}/report.html。
- 清晰简洁地向用户呈现这些结论,并告知已生成 HTML 报告。
输出要求
HTML 报告生成
重要:Python 脚本不生成 HTML 报告。你(AI)必须在读取 results.json 文件后从头生成 report.html。基于以下内容创建定制化、美观的报告:
- 结果数据:分析实际 results.json 以突出关键洞察、异常和模式。
- 用户专业水平:根据用户的 SEO 知识水平调整技术深度和解释。
- 业务背景:针对其特定行业、阶段和目标定制建议。
- 可操作性:使洞察立即可操作,有明确的下一步。
报告生成指南:
- 脚本执行后读取 results.json 以了解实际数据。
- 生成 HTML 报告时:
- 直接在 HTML 中添加上下文评论/洞察(使用 HTML 注释或可见标注部分)。
- 用视觉强调突出最重要的发现。
- 基于数据定制“行动”部分,提供具体、优先级的建议。
- 添加原始数字中不明显的、数据驱动的洞察。
- 包含 fan-out 查询分析及具体内容机会。
- 如果提及竞品,添加竞品分析。
- 创建视觉层次以引导读者注意力。
设计原则:
- 美观:使用现代、简洁的设计,良好的排版、间距和色彩对比。
- 易读:清晰的部分、可扫描的布局、视觉层次。
- 可操作:每个洞察都应导向明确的下一步或决策。
必需元素:
- 单个 report.html(由 AI 生成,保存到日期输出文件夹)。
- 每个提示词的摘要指标(被引用、首次引用排名、被提及、fan-out 查询、来源分解)。
- 针对具体结果的优先级“行动”部分。
- 页脚必须包含 holly-and-stick.com。
使用 obsidian/GEO Playbook.md 中的指导:
- 列出提示词 → 追踪 → 等待 → 分析 fan-outs。
- 为 fan-outs 创建缺失内容。
- 战略性地定位 UGC 主导的来源。
适用场景
适用于希望追踪品牌在 LLM 中可见性的 SEO 专业人员、营销人员或企业,特别是需要了解品牌在 ChatGPT、Perplexity、Gemini 等平台中被引用和提及情况,并基于数据制定内容策略的场景。
限制
- Bright Data API 是强制要求,需要有效的 API 密钥和数据集 ID。
- 初始提示词数量限制为 2-10 条。
- 需要用户自行设置环境变量,不能直接在聊天中暴露密钥。
- HTML 报告由 AI 生成,非脚本自动生成。
- 其他具体限制暂未提供。