v0.11.1: 权限体系重构 + AI管线优化 + 内容整理

This commit is contained in:
sgp
2026-05-22 18:36:41 +08:00
parent 7955d11c52
commit b33fe1e8e1
397 changed files with 30940 additions and 161 deletions
+132
View File
@@ -0,0 +1,132 @@
# AI发现模块
## 概述
AI发现模块是追光AI的核心功能,采用"提示词+JSON粘贴导入"模式,用户复制页面内嵌的提示词发给AI助手,获取JSON后粘贴到页面导入,不调用任何外部AI API。
## 架构
```
页面内嵌提示词模板(含排除列表) → 用户复制发给AI助手 → AI返回JSON → 粘贴到页面 → API去重导入 → PendingTool/PendingSkill → 管理员审核 → Tool/Skill
```
## 五大操作指令
### 探索AI工具 (`/admin/discover-tools`)
1. 选择分类(20个工具分类)
2. 复制提示词(自动注入排除列表)
3. 粘贴AI返回的JSON到输入框
4. 点击导入按钮,API自动去重导入待审核列表
5. 可选:批量抓取Logo
### 检测AI工具 (`/admin/check-tools`)
1. 选择范围(已发布/待审核)
2. 一键检测+抓取Logo
3. 系统自动逐一GET请求检测网站可访问性
4. 同时自动抓取缺失Logo,记录成功方法名
5. 展示Logo抓取方法统计(按成功次数排序)
6. 失效工具可一键删除
### 探索AI技能 (`/admin/discover-skills`)
1. 选择分类(20个技能分类)
2. 复制提示词(自动注入排除列表)
3. 粘贴AI返回的JSON到输入框
4. 点击导入按钮,API自动去重导入待审核列表
### 更新Skill技能 (`/admin/update-skills`)
1. 选择范围(已发布/待审核)
2. 一键更新Star
3. 系统自动从GitHub/Gitee/GitCode API获取最新星级
4. 展示Star变化表格(上升/下降/不变)
### AI新闻发现 (`/admin/discover-news`)
1. 复制新闻发现提示词
2. 粘贴AI返回的JSON到输入框
3. 点击导入按钮,自动生成今日AI日报
4. 新闻6大分类:产品发布/融资投资/技术突破/政策法规/开源项目/行业事件
5. 每条新闻含热度评分(1-100)
## Logo抓取引擎 (`src/lib/logo-fetcher.ts`)
### 核心API
- `fetchLogo(websiteUrl, html?): Promise<string>` — 返回Logo URL
- `fetchLogoWithMethod(websiteUrl, html?): Promise<{url, method}>` — 返回Logo URL + 成功方法名
### 抓取策略(按优先级,共10种)
1. **HTML Link图标**: 解析 `<link rel="icon/apple-touch-icon">` 标签
2. **OG/Twitter图片**: 解析 `<meta property="og:image">` 标签
3. **HTML Manifest**: 解析 `manifest.json` 中的icons数组
4. **HTML img标签**: 查找class/alt含"logo"的img标签
5. **Header区域Logo**: 解析header/nav区域内的img标签
6. **SVG Logo**: 查找内联SVG logo
7. **常见路径**: 尝试 /apple-touch-icon.png, /logo.png, /favicon.ico 等
8. **Favicon服务**:
- favicon.im
- Google Favicons (sz=128/64)
- Clearbit
- DuckDuckGo
- Favicon Grabr (API解析)
- Icon Horse (API解析)
9. **Brandfetch品牌库**: 通过Brandfetch API获取品牌Logo
10. **截图兜底**: 通过截图服务获取网站截图
### 配置项
- `enabledMethods`: 启用的抓取方法
- `commonPaths`: 常见图标路径列表
- `faviconServices`: Favicon服务列表
- `minFileSize`: 最小文件大小(默认50字节)
- `requestTimeout`: 请求超时(默认10秒)
### Logo本地存储 (`src/lib/logo-storage.ts`)
- `downloadLogo(url, filename): Promise<string>` — 下载Logo到 `/public/logos/` 目录
- 返回本地路径如 `/logos/filename.png`
## 脚本
### discover-skills.mjs
- 独立运行的AI技能发现脚本
- 遍历20个技能分类,每类调用DeepSeek API推荐10个GitHub开源项目
- 通过 `/api/admin/pending-skills/batch` 批量导入
- 每分类间隔3秒避免限流
- 自动排除已收录技能
### import-tools-batch1.mjs / import-tools-batch2.mjs
- 硬编码的AI工具数据导入脚本
- 通过 `/api/admin/pending/batch` 批量导入
## 自动化评测流程
### 架构概览
```
GitHub API (octokit) → 搜索热门仓库 → 获取README
↓
DeepSeek API (openai兼容) → 五维评测生成 → JSON解析+校验
↓
Prisma → Skill记录 + SkillReview记录 + ReviewGenerationLog日志
↓
前端 → /api/skills/[slug]/review → SkillReviewCard雷达图展示
```
### 评测脚本 (scripts/auto-review.mjs)
- 搜索关键词: ai agent, llm framework, rag, prompt engineering
- 每日限制: 8个项目 (DAILY_LIMIT可配置)
- 最低Star数: 500
- 去重: 通过sourceUrl检查是否已存在
- 综合分校验: 自动计算五维均分,偏差>0.3时修正
- 评测状态: 初始为DRAFT,需手动或通过脚本改为PUBLISHED
### 五维评测维度
| 维度 | 字段 | 说明 |
|------|------|------|
| 场景与能力 | capability | 场景覆盖度和核心能力 |
| 开发体验 | devExp | 安装、文档、API易用性 |
| 成本与许可 | costLicense | 硬件成本、API定价、许可证风险 |
| 社区健康 | community | Issue响应、PR频率、生态 |
| 性能稳定 | performance | 运行效率、稳定性、输出质量 |
### 评测标签分类
LLM框架, Agent框架, RAG, 提示工程, 多模态, 代码助手, 模型训练, 数据工程, 部署工具, 评测工具, 安全对齐, 其他
### 发布评测脚本 (scripts/publish-reviews.mjs)
- 将DRAFT状态评测改为PUBLISHED
- 同时将对应Skill状态从draft改为published
## 踩坑记录