GEO - AI搜索引擎品牌曝光度优化平台

项目简介
GEO(Generative Engine Optimization)是一个SaaS平台,帮助品牌监测其在各大AI搜索引擎中的曝光度和引用情况。支持文心一言、Kimi、通义千问、豆包、讯飞星火、天工、清言等主流国内AI平台,以及通用搜索引擎。
核心功能
- 多平台品牌引用监测:同时覆盖8个主流AI搜索平台
- 定时自动查询与即时查询:支持按日/周频率自动执行,也可手动触发
- 品牌匹配分析:精确匹配、别名匹配、模糊匹配三级策略
- 竞品引用检测:监测竞争对手在同一查询中的引用情况
- 数据可视化:引用趋势图、平台对比图等多维度图表
- CSV/PDF报告导出:一键生成专业数据报告
- 用户管理与权限控制:JWT认证、邮箱验证、密码管理
- 订阅套餐管理:基于套餐的查询词数量限制
- 管理后台:系统级用户与数据管理
技术栈
| 组件 |
技术 |
| 前端 |
Next.js 14, React 18, TailwindCSS, shadcn/ui, Recharts |
| 后端 |
Python FastAPI, SQLAlchemy 2.0 (async), Pydantic v2 |
| 数据库 |
PostgreSQL 15, Redis 7 |
| 认证 |
JWT + NextAuth.js |
| 任务调度 |
APScheduler |
| 浏览器自动化 |
Playwright |
| 容器化 |
Docker Compose |
快速开始
Docker 方式(推荐)
# 1. 克隆仓库
git clone <repository-url>
cd GEO
# 2. 复制环境变量
cp .env.example .env
# 3. 启动所有服务
docker-compose up -d
# 4. 访问应用
# 前端: http://localhost:3000
# 后端 API: http://localhost:8000
# API 文档: http://localhost:8000/docs
本地开发
后端
cd backend
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
alembic upgrade head
uvicorn app.main:app --reload --port 8000
前端
cd frontend
npm install
npm run dev
项目结构
GEO/
├── backend/ # FastAPI 后端服务
│ ├── alembic/ # 数据库迁移脚本
│ ├── app/
│ │ ├── api/ # API 路由层
│ │ │ ├── auth.py # 认证接口
│ │ │ ├── queries.py # 查询词管理接口
│ │ │ ├── citations.py # 引用数据接口
│ │ │ ├── reports.py # 报告导出接口
│ │ │ └── deps.py # 依赖注入
│ │ ├── middleware/ # 中间件
│ │ │ ├── rate_limit.py # 限流中间件
│ │ │ └── logging_middleware.py
│ │ ├── models/ # SQLAlchemy 数据模型
│ │ │ ├── user.py
│ │ │ ├── query.py
│ │ │ ├── citation_record.py
│ │ │ ├── query_task.py
│ │ │ └── subscription.py
│ │ ├── schemas/ # Pydantic 数据校验
│ │ ├── services/ # 业务逻辑层
│ │ ├── workers/ # 任务调度与引擎
│ │ │ ├── scheduler.py # APScheduler 定时任务
│ │ │ ├── citation_engine.py
│ │ │ └── platforms/ # 各平台适配器
│ │ ├── config.py # 应用配置
│ │ ├── database.py # 数据库连接
│ │ └── main.py # 应用入口
│ ├── requirements.txt
│ └── Dockerfile
├── frontend/ # Next.js 前端应用
│ ├── app/
│ │ ├── (auth)/ # 认证相关页面
│ │ │ ├── login/
│ │ │ ├── register/
│ │ │ ├── forgot-password/
│ │ │ └── reset-password/
│ │ ├── (dashboard)/ # 仪表盘页面
│ │ │ └── dashboard/
│ │ │ ├── queries/
│ │ │ ├── citations/
│ │ │ ├── reports/
│ │ │ └── settings/
│ │ ├── api/auth/[...nextauth]/
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── components/
│ │ ├── ui/ # shadcn/ui 组件
│ │ ├── charts/ # Recharts 图表组件
│ │ └── layout/ # 布局组件
│ ├── lib/ # 工具函数与API客户端
│ └── package.json
├── tests/ # 后端测试
├── docker-compose.yml
├── .env.example
└── README.md
API 概览
| 模块 |
路径前缀 |
说明 |
| 认证 |
/api/v1/auth |
注册、登录、密码管理、邮箱验证、用户资料 |
| 查询管理 |
/api/v1/queries |
查询词CRUD、立即查询 |
| 引用数据 |
/api/v1/citations |
引用记录查询、统计分析 |
| 报告导出 |
/api/v1/reports |
CSV报告生成与下载 |
完整的 API 端点列表请参阅 backend/README.md。
环境变量
| 变量名 |
说明 |
示例 |
DATABASE_URL |
PostgreSQL 连接字符串 |
postgresql+asyncpg://postgres:postgres123@db:5432/geo_platform |
REDIS_URL |
Redis 连接地址 |
redis://redis:6379/0 |
JWT_SECRET |
JWT 签名密钥 |
your-secret-key-change-in-production |
JWT_EXPIRE_HOURS |
JWT 过期时间(小时) |
24 |
NEXT_PUBLIC_API_URL |
前端调用后端 API 地址 |
http://localhost:8000 |
PLAYWRIGHT_BROWSERS_PATH |
Playwright 浏览器路径 |
/ms-playwright |
ZHIPU_API_KEY |
智谱AI API 密钥(可选) |
- |
TONGYI_API_KEY |
通义千问 API 密钥(可选) |
- |
CORS_ORIGINS |
允许的跨域来源 |
http://localhost:3000 |
许可证
MIT