{"repo":"Nzy189/github-ai-insight","free":true,"listed":false,"github":"https://github.com/Nzy189/github-ai-insight","clone":"git clone https://github.com/Nzy189/github-ai-insight.git","description":"Self-hosted daily digest of trending GitHub AI/LLM projects — scored by an LLM across four weighted dimensions, rendered as a self-contained dark-theme HTML report, and pushed to WeChat Work. Runs on a NAS via Docker.","language":"Python","stars":12,"topics":[],"license":null,"category":"deployment-docker-iac","readme_excerpt":"GitHub AI Insight English 简体中文 部署在 NAS 上的 Docker 自动化服务。每天定时抓取 GitHub 热门 AI/LLM 开源项目， 通过 LLM 深度分析打分，选出当日最高分项目，生成暗色主题 HTML 报告，并推送企业微信群机器人。 需求见 GitHub-AI-Insight-PRD.md，视觉规范见 DESIGN.md。 --- 快速开始 先本地跑通，再上 NAS。 本地验证不需要任何 API Key： 完整的本地测试方案见 LOCAL TESTING.md ， NAS 上线步骤见 DEPLOY.md （极空间 + Tailscale）。 正式部署： 改配置（换模型 / 换 API / 改推送地址） ：编辑 .env ，然后 .env 是以 文件 形式挂进容器的，应用在进程启动时读它，所以 restart 就能生效 ——不需要 up -d 重建。唯一的例外是 TIMEZONE / PUID / PGID / HTTP PORT 这四项（它们要在进程起来之前生效），改这些仍需 docker compose up -d 。 改完看一眼日志确认新配置可用： 启动时会自动发一次最小 LLM 请求做自检，日志里出现 启动自检通过 ✓ 就说明 新模型能用；配错了会直接打出错误原因，不用等到第二天收到一条全降级的日报。 --- 工作流 评分权重 ：实用性 35% · 解决问题 30% · 受欢迎程度 25% · NAS 可用性 10% 两条抓取通道 GitHub Search 只能按 created 过滤， 没有「最近涨星快」这个条件 。只靠一条窄窗口通道， 两个月前创建、如今上万星的项目永远不会进候选 —— 它早就滑出窗口了，不是排名靠后，是压根查不到。 通道 查询 抓的是 --- --- --- 新生 created: =SEARCH DAYS 天 stars: =MIN STARS 刚出生的 新星 created: =RISING DAYS 天 stars: =RISING MIN STARS 已被市场验证、但我们错过了的 两条通道 交替取样 ，不是合并后按 star 排序 —— 排序会让新星通道里的巨头永久压制新生通道 （3 天内的项目普遍只有几十星），「发现新项目」会静悄悄退化成「补看旧项目」。 设 RISING ENABLED=false 可关掉第二条通道。 老掉牙一票否决 放宽时间窗口的代价是：星数榜深处全是停更多年的高星项目 —— awesome 清单、论文合集、 被取代的旧框架。它们在「受欢迎程度」那 25% 上还能拿满分。 因此在四维评分之外加了一个 否决位 （不是加权维度 —— 加权意味着一个死仓库仍可靠其他三项赢）： - 硬过滤 ：仓库 archived 为真，在去重前就丢掉，不花 LLM 的钱去问 - 模型判定 ：LLM 在同一次调用里返回 obsolete 布尔值与理由。判 true 的条件是 「已被更主流项目取代且说得出取代者」「只支持已停维护的技术栈」「本质是教程/清单/作业」 「已归档或作者建议改用别的项目」 防误杀是这部分的重点：字段缺失、解析失败、走降级 一律判 false ； prompt 里明写「你没听过它 ≠ 过时」（模型有知识截止时间，而本系统的价值恰恰是推送它没听过的东西） 和「成熟 ≠ 过时」。被否决的项目单独记为 obsolete 状态，便于事后审计误杀。 候补池 每天分析 5 个只推 1 个，落选的 4 个过了 GitHub 搜索窗口（ SEARCH DAYS 天）","default_branch":null,"files":null,"tree":[],"storefront":"/r/Nzy189","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Nzy189/github-ai-insight/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}