← 返回列表

test-ci-cd:用 LLM 与图库 API 每小时自动刷新照片画廊

mujammed-04/test-ci-cd · Next.js gallery that refreshes itself hourly — an LLM invents the search prompts, a stock photo API finds the shots, CI republishes the image

GitHub原文发布 未知首次收录 2026-09-23上架 2026-09-23 12:01

☆ 收藏查看项目 ↗

ELI5:它是什么,解决什么问题

一个基于 Next.js 的照片画廊项目,通过 GitHub Actions 每小时自动运行:先随机选择主题,再由 Groq 上的 LLM 生成搜索提示词,调用 Pexels 图片 API 获取照片并写入 gallery.json 提交到 main 分支,随后触发 CI 校验并重新构建镜像发布到 GHCR。项目使用 Next.js 16 App Router、React 19、TypeScript、StyleX 与 Feature-Sliced Design 组织代码,支持多语言路由,图片与提示词来源需标注 Pexels 与 Groq。

核心能力与快速开始

★ 0 · TypeScript

能做什么
以 cron 定时(每小时)的 GitHub Actions 工作流为核心:随机挑选主题,由 Groq 上的 LLM 生成简短搜索提示词,调用 Pexels 图库 API 为每个提示词寻找照片,将结果写入 gallery.json 并提交到 main 分支;随后调用 CI 工作流做 lint、typecheck、build、commitlint,并通过 release 工作流构建镜像发布到 GHCR。前端为 Next.js 16 App Router 应用,React 19、TypeScript 5、StyleX,代码按 Feature-Sliced Design 分层(app / views / widgets / features / entities / shared),通过 ESLint 的 eslint-plugin-boundaries 约束层级导入;使用 next-intl 提供多语言路由(ru、en、kk);画廊与照片详情页为构建期静态生成,数据来自 gallery.json。脚本 scripts/generate-gallery.mjs 可在本地手动运行生成数据。
适用场景
适合作为演示或学习「LLM 生成提示词 + 图库 API 检索 + CI/CD 自动定时发布」完整链路的示例项目;也可用于搭建一个每小时自动更新、带多语言支持的照片画廊站点;其 GitHub Actions 工作流编排方式(workflow_call 手动级联调用、避免 GITHUB_TOKEN 提交触发循环)可作为 CI/CD 实践参考。
项目形态
可直接使用的工具
部署方式
提供 Docker 镜像并通过 GitHub Actions 发布到 GHCR;需要在 GitHub 仓库中配置 Actions secrets(GROQ_API_KEY、PEXELS_API_KEY 等),并启用 gallery.yml 的 cron 与 release.yml 的镜像构建流程。本地开发通过 yarn install、yarn dev 启动。
主要依赖
Node 22;Next.js 16(App Router,output: standalone)、React 19、TypeScript 5、StyleX、next-intl;需要 GROQ_API_KEY(必填)与 PEXELS_API_KEY(必填),可配置 PHOTO_COUNT(1–20,默认 6)。手动运行脚本时需使用 node 的 --env-file 标志传入 .env。
使用限制
Pexels 的使用条款要求可见署名并链接到摄影师,README 明确要求在画廊两个页面中保留该署名;Pexels 免费额度为每小时 200 次、每月 20000 次请求(README 说明),Unsplash 免费 Demo 访问限制为每小时 50 次请求,故项目从 Unsplash 迁移至 Pexels;因为页面为构建期静态生成,新照片只有在重新构建后才出现在站点上;由 GITHUB_TOKEN 创建的提交不会触发 push 工作流,因此 CI/release 采用 workflow_call 手动级联调用。项目许可证信息未说明。
许可证
未说明
最近推送
2026-09-23 04:57

资料检查:2026-09-23 07:00 · 卡片整理:2026-09-23 12:00
卡片由 AI 根据仓库资料整理,未进行安装或运行验证 · 本次更新未完成,保留上次成功内容

职业应用

程序员

作为 CI/CD 与自动化工作流参考:用 GitHub Actions 定时任务调用 LLM 生成搜索提示词、调用图库 API 获取数据并提交到仓库,再触发 CI 校验与镜像发布,可用于搭建类似的自动化数据刷新与持续交付流程。

查看内容依据
一个基于 Next.js 的照片画廊项目,通过 GitHub Actions 每小时自动运行:先随机选择主题,再由 Groq 上的 LLM 生成搜索提示词,调用 Pexels 图片 API 获取照片并写入 gallery.json 提交到 main 分支,随后触发 CI 校验并重新构建镜像发布到 GHCR。

官方使用入口 ↗

由 AI 根据来源材料整理,未进行安装或运行验证

这是基于来源内容整理的摘要。原文链接失效后,本页摘要和讨论仍会保留。

讨论 0

登录后参与讨论,阅读资讯无需注册。

还没有评论,来分享第一个看法。