Files
zhuiguang-ai/.trae/specs/modules/05-ai-discovery.md
T

5.0 KiB
Raw Blame History

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

踩坑记录