GEO 接入 CI/CD 的场景
将 GEO 诊断接入 CI/CD 流水线,实现内容发布前的自动化验证,参考GEO 自动化:
- 内容发布前验证:检测内容变更是否影响 AI 可见性
- 结构化数据校验:验证 Schema.org 标记是否正确
- robots.txt 检查:确保 AI 爬虫未被误封
- llms.txt 验证:确保 llms.txt 部署正确
- 回归检测:代码变更后检测 AI 可见性是否回归
CI/CD 集成方案
方案 1:内容发布前 GEO 诊断
在内容管理系统的发布流程中加入 GEO 诊断:
- 内容编辑提交发布申请
- CI/CD 触发 GEO 体检仪 API 诊断(参考GEO API)
- 对比诊断结果与 baseline
- 若 AI 可见性下降超过阈值,阻断发布
- 若通过,自动发布内容
方案 2:结构化数据校验
在代码部署流程中校验结构化数据:
# .gitlab-ci.yml 示例
geo-validate:
stage: test
script:
- curl -X POST https://api.geo-check.com/api/diagnose/validate-schema
-H "Authorization: Bearer $GEO_API_KEY"
-d "{"url":"$DEPLOY_PREVIEW_URL"}"
- exit $?
方案 3:定期回归检测
定期在 CI/CD 中运行 GEO 诊断,检测回归:
- 每周自动运行一次 GEO 诊断
- 对比上周 baseline
- 提及率下降 5%+ 触发告警
- 生成回归报告并发送到团队
CI/CD 集成的技术实现
GitHub Actions 示例
name: GEO Check
on:
schedule:
- cron: '0 2 * * 1' # 每周一 2 点
workflow_dispatch:
jobs:
geo-check:
runs-on: ubuntu-latest
steps:
- name: Run GEO diagnosis
run: |
RESPONSE=$(curl -X POST \
-H "Authorization: Bearer ${{ secrets.GEO_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{"brand":"品牌名","category":"品类词"}' \
https://api.geo-check.com/api/diagnose/run)
TASK_ID=$(echo $RESPONSE | jq -r '.data.taskId')
sleep 60
RESULT=$(curl -H "Authorization: Bearer ${{ secrets.GEO_API_KEY }}" \
https://api.geo-check.com/api/diagnose/report/$TASK_ID)
SCORE=$(echo $RESULT | jq -r '.data.overall_score')
echo "GEO Score: $SCORE"
CI/CD 集成的阈值设置
| 检查项 | 通过阈值 | 失败处理 |
|---|---|---|
| 结构化数据校验 | 无错误 | 阻断部署 |
| robots.txt 检查 | AI 爬虫允许 | 阻断部署 |
| llms.txt 存在性 | 文件存在 | 警告(不阻断) |
| AI 可见性回归 | 下降 <5% | 告警(人工审核) |
| 提及率回归 | 下降 <10% | 阻断发布 |
集成的注意事项
- API Key 安全:API Key 存为 CI/CD secret,不硬编码
- 诊断耗时:GEO 诊断约 30 秒-2 分钟,CI/CD 需设置合理超时
- 限流策略:遵守 API 限流,参考GEO API
- 异步处理:诊断是异步的,需轮询结果或用 webhook
CI/CD 集成的价值
- 防止回归:代码/内容变更导致 AI 可见性下降时及时发现
- 自动化:无需人工监测,CI/CD 自动执行
- 团队协作:GEO 质量纳入研发流程,全员负责
- 持续保障:长期保障品牌 AI 可见性健康