# 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` — 返回Logo URL - `fetchLogoWithMethod(websiteUrl, html?): Promise<{url, method}>` — 返回Logo URL + 成功方法名 ### 抓取策略(按优先级,共10种) 1. **HTML Link图标**: 解析 `` 标签 2. **OG/Twitter图片**: 解析 `` 标签 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` — 下载Logo到 `/public/logos/` 目录 - 返回本地路径如 `/logos/filename.png` ## 自动化评测流程 ### 架构概览 ``` GitHub API (octokit) → 搜索热门仓库 → 获取README ↓ DeepSeek API (openai兼容) → 五维评测生成 → JSON解析+校验 ↓ Prisma → Skill记录 + SkillReview记录 + ReviewGenerationLog日志 ↓ 前端 → /api/skills/[slug]/review → SkillReviewCard雷达图展示 ``` ### 五维评测维度 | 维度 | 字段 | 说明 | |------|------|------| | 场景与能力 | capability | 场景覆盖度和核心能力 | | 开发体验 | devExp | 安装、文档、API易用性 | | 成本与许可 | costLicense | 硬件成本、API定价、许可证风险 | | 社区健康 | community | Issue响应、PR频率、生态 | | 性能稳定 | performance | 运行效率、稳定性、输出质量 | ### 评测标签分类 LLM框架, Agent框架, RAG, 提示工程, 多模态, 代码助手, 模型训练, 数据工程, 部署工具, 评测工具, 安全对齐, 其他 ## 定时任务自动化(Task调度系统) ### 架构概览 ``` Crontab(6个定时) → 脚本执行(Node.js .mjs) → 外部API调用(GitHub/DeepSeek/网站) ↓ Prisma → Tool/Skill/PendingTool/PendingSkill/DailyReport 写入 ↓ TaskLog表记录执行结果(status/duration/result/error) ↓ 后台管理 /admin/tasks → 查看配置/状态/历史/手动触发 ``` ### 7个任务总览 | # | 任务 | 脚本 | Cron | 依赖外部API | 产量 | |---|------|------|------|------------|------| | Task1 | 发现AI工具 | task1-discover-tools.mjs | 06:00 | DeepSeek + RSS抓取 | 不定 | | Task3 | 工具巡检 | task3-check-tools.mjs | 03:00 | 网站GET请求 | 全部Tool+PendingTool | | Task4 | 发现AI技能 | daily-discover.mjs | 05:00 | GitHub API + DeepSeek | ≤30/天 (stars≥1000) | | Task5 | 更新星值 | task5-update-stars.mjs | 01:00 | GitHub API | 全部GitHub技能 | | Task6 | 评测热门 | task6-review-hot.mjs | 04:00 | GitHub API + DeepSeek | 2个/天 | | - | AI日报 | daily-news.mjs | 07:30 | RSS多源 + DeepSeek | 1篇/天 | ### TaskLog 统一记录 所有任务脚本统一在末尾写入TaskLog: ```javascript await prisma.taskLog.create({ data: { taskKey: "taskX-xxx", taskName: "任务名", status: "completed", startedAt, finishedAt, duration, result, error } }); ``` 失败时在 catch 块中写入 status: "failed" 的日志。 ### 后台可视化 - `/admin/tasks` — 6个任务卡片,显示启用状态/Cron/最近执行/手动运行 - `/admin/tasks/logs` — 全部执行历史,按任务筛选,可展开查看结果详情 - `/admin/tasks/[taskKey]` — 单任务详情,统计成功率/失败率/平均耗时 ## 质量过滤 ### isValidAIProject() - 关键词过滤: `book/guide/tutorial/awesome/interview/notes/handbook/cheatsheet/roadmap/curated-list` 等 - 语言过滤: 纯Markdown/HTML文档Repo(Stars<5000)自动拒绝 - 主题过滤: 有GitHub Topics的Repo必须包含AI相关Topic(ai/llm/rag/agent/gpt等) ## AI日报新闻源 - **36kr** RSS (https://36kr.com/feed) — 国内科技资讯 - **IT之家** RSS (https://www.ithome.com/rss/) — 国内科技资讯 - **开源中国** RSS (https://www.oschina.net/news/rss) — 开源动态 - **HackerNews** API — 海外AI/技术热点 - **Google News** RSS — 海外新闻(国内服务器可能无法访问) - 流程: 搜索真实新闻 → AI关键词过滤 → 近2天筛选 → DeepSeek整理格式 → 入库发布 - **严禁让DeepSeek直接生成新闻内容**(会编造假新闻),必须基于真实新闻素材整理