5.0 KiB
5.0 KiB
AI发现模块
概述
AI发现模块是追光AI的核心功能,采用"提示词+JSON粘贴导入"模式,用户复制页面内嵌的提示词发给AI助手,获取JSON后粘贴到页面导入,不调用任何外部AI API。
架构
页面内嵌提示词模板(含排除列表) → 用户复制发给AI助手 → AI返回JSON → 粘贴到页面 → API去重导入 → PendingTool/PendingSkill → 管理员审核 → Tool/Skill
五大操作指令
探索AI工具 (/admin/discover-tools)
- 选择分类(20个工具分类)
- 复制提示词(自动注入排除列表)
- 粘贴AI返回的JSON到输入框
- 点击导入按钮,API自动去重导入待审核列表
- 可选:批量抓取Logo
检测AI工具 (/admin/check-tools)
- 选择范围(已发布/待审核)
- 一键检测+抓取Logo
- 系统自动逐一GET请求检测网站可访问性
- 同时自动抓取缺失Logo,记录成功方法名
- 展示Logo抓取方法统计(按成功次数排序)
- 失效工具可一键删除
探索AI技能 (/admin/discover-skills)
- 选择分类(20个技能分类)
- 复制提示词(自动注入排除列表)
- 粘贴AI返回的JSON到输入框
- 点击导入按钮,API自动去重导入待审核列表
更新Skill技能 (/admin/update-skills)
- 选择范围(已发布/待审核)
- 一键更新Star
- 系统自动从GitHub/Gitee/GitCode API获取最新星级
- 展示Star变化表格(上升/下降/不变)
AI新闻发现 (/admin/discover-news)
- 复制新闻发现提示词
- 粘贴AI返回的JSON到输入框
- 点击导入按钮,自动生成今日AI日报
- 新闻6大分类:产品发布/融资投资/技术突破/政策法规/开源项目/行业事件
- 每条新闻含热度评分(1-100)
Logo抓取引擎 (src/lib/logo-fetcher.ts)
核心API
fetchLogo(websiteUrl, html?): Promise<string>— 返回Logo URLfetchLogoWithMethod(websiteUrl, html?): Promise<{url, method}>— 返回Logo URL + 成功方法名
抓取策略(按优先级,共10种)
- HTML Link图标: 解析
<link rel="icon/apple-touch-icon">标签 - OG/Twitter图片: 解析
<meta property="og:image">标签 - HTML Manifest: 解析
manifest.json中的icons数组 - HTML img标签: 查找class/alt含"logo"的img标签
- Header区域Logo: 解析header/nav区域内的img标签
- SVG Logo: 查找内联SVG logo
- 常见路径: 尝试 /apple-touch-icon.png, /logo.png, /favicon.ico 等
- Favicon服务:
- favicon.im
- Google Favicons (sz=128/64)
- Clearbit
- DuckDuckGo
- Favicon Grabr (API解析)
- Icon Horse (API解析)
- Brandfetch品牌库: 通过Brandfetch API获取品牌Logo
- 截图兜底: 通过截图服务获取网站截图
配置项
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