Skip to content

Repository files navigation

诗屿 Poem Island — write down a feeling, receive a classical Chinese poem and an island of light

诗屿把一句心情,变成一首古诗和一座岛。写下此刻的感受,AI 从千年诗句里选出最 能共鸣的名句,配一座随情绪变色的光之岛屿,和一张可以保存分享的竖版诗笺。

Running on Railway with healthcheck-gated zero-downtime deploys.

一 — 两幕体验 The ritual

第一幕 · 输入:纯黑舞台上,一团缓慢呼吸的极光光球(canvas 实时渲染:噪声 轨道、加色混合、鼠标弹性视差、胶片颗粒)。玻璃胶囊里写下一句话——"此刻,心里 是什么天气?"

过场:海雾正在聚拢 → 寻找岛上的光 → 为你写下一首诗。

第二幕 · 揭晓:整页切换。光球流转成你情绪的颜色(六种心情,六种色相), 诗句逐行从遮罩中升起,岛屿得到一个原创的名字。可保存 1080×1920 诗笺,或再寻 一座。

二 — 选诗之道 How it works

心情 ──▶ /api/generate ──▶ DeepSeek ──失败──▶ Anthropic ──都失败──▶ 本地 7 岛降级
                │
                ▼  严格 JSON + 校验
  { mood, islandName, lines, title, author, note }

选诗的第一原则是共鸣,不是鼓励:prompt 明确禁止对焦虑的人条件反射地掏出 「长风破浪会有时」——说"李白也曾被冰雪堵在路上",比"你会成功的"更接近安慰。 只选真实存在、广为流传的名句,署名准确;岛名原创;解读 40 字以内,不鸡汤、 不说教。2.8 秒的寻岛仪式与 API 调用并行——AI 快时无感,慢时仪式兜底。

三 — 跑起来 Run it

cp .env.example .env.local   # 配 DEEPSEEK_API_KEY 或 ANTHROPIC_API_KEY(不配则走本地降级)
npm install
npm run dev                  # http://localhost:3000

Next.js 14 · framer-motion · Canvas 2D · 无数据库、无登录——刻意保持一次呼吸 的轻盈。部署 Railway 时在 Variables 里配同样的 key,healthcheck 指向 /api/health

About

写下一句心情,换一首古诗和一座岛 · Turn a feeling into a classical Chinese poem and an island of light. Live on Railway.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages