随着DeepSeek、豆包、Kimi等AI大模型成为用户获取信息的新入口,品牌在AI搜索结果中的可见度变得越来越重要。我所在的团队在服务客户的过程中,发现需要一套系统化的工具来帮助企业优化在AI搜索中的表现。由于市面上没有现成的成熟方案,我们决定从零开始自研一套GEO(生成式引擎优化)系统。本文记录这套系统的技术架构、开发过程中遇到的典型问题及解决方案,以及最终的效果数据。
系统采用前后端分离架构,前端Vue.js + Element UI,后端Python Flask + SQLAlchemy,数据库MySQL,缓存Redis,异步任务Celery + RabbitMQ,部署在云服务器上。整体分为五个微服务:
服务 | 功能 | 技术栈 |
|---|---|---|
知识库服务 | 实体-属性-关系建模,结构化存储 | MySQL, Milvus(向量) |
智能拓词服务 | 长尾词扩展、意图分类 | WordNet, Sentence-BERT, NLTK |
AI写作工坊 | 多平台指令模板,生成初稿 | 大模型API |
分发服务 | 多平台批量定时发布 | Celery, Requests, Selenium |
监测服务 | 排名抓取、趋势分析 | Selenium, Pandas, ReportLab |
我们设计了一套实体模型(JSON Schema),例如对于教育客户,师资实体包含:name, originalUnit, position, teachingYears, expertise等属性。数据导入支持Excel批量上传和手动表单录入。结构化数据存入MySQL,同时生成向量表示存入Milvus用于语义检索。前后端通过RESTful API交互,知识库中的数据可以在写作时直接调用。
踩坑与解决:初期知识库与写作工坊数据不通,写文章时仍需手动复制粘贴。后来通过API打通,写作工坊直接读取知识库数据填充到模板,实现了“一次录入,多处使用”。
输入核心种子词后,系统通过WordNet同义词扩展、Sentence-BERT词向量相似度计算,生成候选长尾词。随后通过规则+朴素贝叶斯分类器将词标记为“了解型”“评估型”“决策型”,人工确认后存入关键词库。
踩坑与解决:早期拓词模块完全依赖算法,生成了大量噪音词(比如从“语文培训”扩展出“语文课本”这类不相关词)。我们加入了人工筛选环节,系统只负责生成候选词,由运营人员打标签确认。虽然增加了人工成本,但关键词质量大幅提升。
针对不同平台,我们预置了差异化的提示词模板:小红书强调口语化、短句、个人体验;知乎强调逻辑结构、数据支撑、可操作建议;技术社区强调底层原理、代码片段、评估指标。调用大模型API生成初稿后,进行人工润色。
踩坑与解决:初期全自动生成的内容“AI味”太重,且本地化细节(地名、学校名、具体事件)无法准确处理。改为“人机协同”模式:系统负责生成初稿和重复性劳动,人工负责本地化细节和语气调整。系统记录每次人工修改的内容,定期优化指令模板参数。
分发服务对接了30个主流AI平台(国内22家,海外8家)。通过Celery异步任务队列实现批量定时发布,支持多账号轮询,失败自动重试(最多3次)并记录日志。平台账号信息加密存储,定期刷新token。
踩坑与解决:早期使用简单的requests请求,很快遇到平台反爬机制。改用Selenium模拟浏览器行为,并配置代理IP池和随机User-Agent。同时保留了降级方案:自动抓取失败时标记“需人工监测”,由运营人员手动补录。
监测服务每日凌晨执行,使用Selenium模拟浏览器访问DeepSeek、文心一言、Kimi等平台,搜索预设的关键词,解析DOM获取品牌提及情况和排名位置。数据存入MySQL,前端展示趋势图表,并支持导出PDF周报。
踩坑与解决:各平台的反爬策略不同,且经常更新。我们维护了一个代理IP池,定期更换User-Agent,并对常用平台做了针对性适配。对于无法自动抓取的平台,保留人工降级方案。
以某个教育客户为例,经过两个月的系统化优化:
所有数据均可通过AI平台手动验证,不存在虚假宣传。
自研GEO系统的过程,本质上是对“AI如何评估信息可信度”这一问题的工程化解答。以下经验供同行参考:
本文基于我所在团队—杭州文澜天下科技的实际开发经验整理。希望对同样在探索GEO优化的技术同行有所帮助。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。