一个基于 Next.js 的个人状态记录站点,首次进入页面即可填写当天的身体、心理、情绪评分,系统会结合定位自动补充天气、空气质量、日照等客观因素,同时提供 AI 智能洞察与行动建议,帮助你发现生活规律与潜在影响因素。
- ✍️ 每日状态记录:身体、心理、情绪评分,睡眠、压力、重点事件等补充信息,支持快捷评分与标签选择。
- 📍 自动定位与环境采集:调用浏览器定位,结合 Open-Meteo 接口获取天气、空气质量、日照时长、月相等数据并写入本地 SQLite。
- 🛰️ 节律面板:现代化玻璃拟态 UI,顶栏展示 7 日趋势卡片,主面板支持拖动滑杆、快捷标签与自定义因素。
- 📈 趋势与相关性分析:折线图展示三项评分走势,自动计算情绪与环境指标的皮尔逊相关系数。
- 🤖 AI 洞察助手:通过 OpenRouter 接入 LLM,从近期数据生成影响因素、行动建议、生活选项及推荐关注标签,可一键添加至表单。
- 📒 历史速览:最近 14 天的关键指标表格,便于快速复盘。
-
安装依赖
npm install
-
配置 OpenRouter API Key
在项目根目录下创建
.env.local(或其它 Next.js 支持的环境文件),写入:OPENROUTER_API_KEY=你的-openrouter-key
出于安全考虑,不要将密钥写入仓库。可以在终端导出为临时环境变量或使用
.env.local。 -
启动开发服务器
npm run dev
打开 http://localhost:3000 访问页面。首次进入请允许浏览器访问定位,便于自动补全环境信息。
-
编译生产构建(可选)
npm run build npm run start
- 所有数据保存在仓库根目录下的
data/wellbeing.sqlite文件。 - 首次运行时会自动创建数据库与
entries表,无需手动初始化。 - 数据包含:打分记录、睡眠与压力备注、定位信息、天气/空气质量/日照等客观字段,以及原始 JSON 上下文,便于后续数据扩展。
GET /api/entries:返回所有记录(按日期升序)。支持通过?date=YYYY-MM-DD查询指定日期。POST /api/entries:提交当日记录,后端会自动获取环境数据并写入 SQLite,已存在的日期会被覆盖更新。GET /api/environment?lat=..&lon=..&date=YYYY-MM-DD:根据经纬度与日期返回环境快照。POST /api/analysis:调用 OpenRouter LLM,基于近期数据输出 JSON 格式的分析、建议与推荐标签。
- 需要浏览器支持并允许定位权限。
- 天气与空气质量数据来自 Open-Meteo 免费接口,无需额外密钥。
- AI 分析使用 OpenRouter,默认模型为
openai/gpt-4o-mini,可根据需要在src/app/api/analysis/route.ts调整。 - 建议定期备份
data/wellbeing.sqlite,以防设备异常导致数据丢失。
欢迎根据个人习惯扩展更多维度或统计分析!