每日问候海报生成工具的核心价值在于将古典诗词、农历信息与自定义视觉元素实时融合,并通过本地化部署保障数据安全与可控性。系统采用后端 FastAPI(Python ≥ 3.10)提供 RESTful 接口,使用 SQLite 持久化诗词、问候语及用户配置,凭 JWT 实现细粒度身份验证;前端基于 React + TypeScript、Vite(Node.js ≥ 18)构建交互式编辑器,支持图片上传、画中画、滤镜以及自由拖拽布局,输出 PNG/JPG/WebP 并可调用 Web Share API 完成分享。
系统架构与技术选型
后端代码位于 backend/,main.py 汇聚用户系统、诗词管理、海报渲染和推送配置;poetry_loader.py 负责加载本地 chinese-poetry(约 500 MB,9 万余首)数据。前端代码集中于 frontend/src/components/GreetingPoster.tsx,实现画布层的实时预览与编辑。整个项目通过 start.ps1 脚本一次性启动后端(默认 0.0.0.0:8001)和前端(8082)服务,便于在本地或服务器上完整运行。
部署关键步骤
- 克隆仓库并切换至项目根目录。
- 使用
pip install -r backend/requirements.txt安装 Python 依赖,随后在backend/.env中配置POETRY_ROOT指向本地chinese-poetry数据目录,并根据需要开启 AI 模型(AI_ENABLED)或定时推送(PUSH_ENABLED)。 - 进入
frontend执行npm install,完成前端依赖后返回根目录运行.start.ps1。 - 首次访问
http://localhost:8082,使用默认管理员账号admin / admin123登录,即可在「设置」面板管理用户、诗词、问候语及系统参数。
可选扩展与运维考量
- 定时推送:通过 Webhook 与 PushPlus、企业微信机器人或 Server酱对接,配置方式已在后台设置页面提供;默认推送时间为 08:00。
- AI 辅助:若
AI_ENABLED=true,系统会调用本地部署的 LLM(如qwen2.5:7b)生成个性化问候语,需自行准备模型服务并在.env中填入AI_API_URL。 - 安全性:JWT 令牌默认使用 HS256 签名,建议在生产环境替换为强随机密钥;后端仅监听
0.0.0.0,若对外暴露请在防火墙或反向代理层限制访问来源。
整体来看,greet‑poster 将传统文化与现代前端技术有机结合,提供了完整的自部署路径,适用于企业内部文化传播、社交媒体内容自动化以及个人定制化海报制作等场景。通过合理配置后端服务与前端构建,可在几分钟内完成全链路部署并实现每日自动化推送。
