Тайлбар байхгүй

lxylxy123321 b2e56ec49b 修复模型信息+地图显示+时区差异 5 өдөр өмнө
backend b2e56ec49b 修复模型信息+地图显示+时区差异 5 өдөр өмнө
docs b2e56ec49b 修复模型信息+地图显示+时区差异 5 өдөр өмнө
frontend 20a31a7991 新增版本号与playwright的win和linux兼容 1 долоо хоног өмнө
.gitignore 3e0d7e5fd3 完善基本模块 1 долоо хоног өмнө
README.md e87cf14e5b 完善了接口返回参数,新增登录页面 1 долоо хоног өмнө

README.md

Sentinel Lens

阿里云百炼模型价格监控系统,自动爬取模型价格、限流信息、工具调用价格,提供可视化仪表盘和对外价格查询 API。

功能

  • 自动爬取阿里云百炼模型页面的价格、限流、工具调用价格、模型信息
  • 支持定时爬取(可配置间隔天数和开始时间)
  • 对外提供价格查询 API,支持按域名配置折扣率
  • 实时访问日志 + 地理分布可视化
  • 爬虫仪表盘:每日爬取次数、模型排行、任务状态
  • 登录认证(JWT + bcrypt)

技术栈

  • 后端:FastAPI + asyncpg + PostgreSQL + Playwright
  • 前端:React + TypeScript + Vite
  • 爬虫:Playwright(Chromium)

项目结构

├── backend/
│   ├── app/
│   │   ├── routers/        # API 路由
│   │   ├── services/       # 爬虫、调度器、WebSocket
│   │   └── utils/          # 价格解析工具
│   ├── crawl/              # 爬虫核心逻辑
│   ├── migrations/         # 数据库迁移 SQL
│   └── requirements.txt
├── frontend/
│   └── src/
│       ├── pages/          # 页面组件
│       ├── components/     # 公共组件
│       └── hooks/          # 自定义 Hook
├── docs/
│   └── api.md              # 接口文档
└── README.md

快速开始

1. 数据库

创建 PostgreSQL 数据库,按顺序执行 backend/migrations/ 下的 SQL 文件:

psql -U <user> -d <dbname> -f backend/migrations/001_init.sql
psql -U <user> -d <dbname> -f backend/migrations/002_models.sql
# ... 依次执行到最新

2. 后端

cd backend
cp .env.example .env
# 编辑 .env 填写数据库连接信息
pip install -r requirements.txt
playwright install chromium
python main.py

后端默认运行在 http://localhost:8000

环境变量说明

变量 说明 默认值
HOST 监听地址 0.0.0.0
PORT 监听端口 8000
DB_HOST 数据库地址 localhost
DB_PORT 数据库端口 5432
DB_USER 数据库用户名
DB_PASSWORD 数据库密码
DB_NAME 数据库名
ALLOWED_ORIGINS 前端跨域地址 http://localhost:5173
GEOIP_DB_PATH GeoLite2 City 数据库路径 ./GeoLite2-City.mmdb
PLAYWRIGHT_EXECUTABLE Chromium 可执行文件路径(可选) 系统默认
JWT_SECRET JWT 签名密钥(生产环境必须修改) change-me-in-production

3. 前端

cd frontend
npm install
npm run dev

前端默认运行在 http://localhost:5173

环境变量

变量 说明 默认值
VITE_API_BASE_URL 后端 API 地址 http://localhost:8000

4. 登录

默认账户:

账户名 密码
admin admin123

生产环境请修改 .env 中的 JWT_SECRET,并在登录后及时修改密码。

使用说明

爬取模型价格

  1. 进入「爬取」页面,点击 + 添加模型 URL(阿里云百炼模型详情页地址)
  2. 勾选要爬取的模型,点击「爬取已选」
  3. 在历史记录中查看任务状态和爬取结果

定时爬取

在「爬取」页面底部配置定时爬取,设置间隔天数和开始时间后开启即可。

价格查询 API

对外暴露的价格接口无需认证,可直接调用:

GET http://localhost:8000/api/public/prices
GET http://localhost:8000/api/public/prices?url=<模型页面URL>

响应中的 discounted_prices 会根据请求来源域名自动应用折扣,折扣配置在「折扣」页面管理。

折扣配置

在「折扣」页面为指定域名配置折扣率(如 0.8 表示八折)。当该域名的前端页面调用价格 API 时,返回的 discounted_prices 中的价格会自动乘以折扣率。

接口文档

详见 docs/api.md