诗歌生成器是一个基于 Next.js 15 构建的现代化 Web 应用,支持多种诗歌体裁的智能生成。用户可以选择诗歌类型并输入主题,系统将生成相应风格的诗歌作品。
在线预览地址:https://hanphone.cn/generate-poems
| 技术 | 版本 | 用途 |
|---|---|---|
| Next.js | 15.5.7 | 前端框架 |
| TypeScript | 5.x | 类型安全 |
| Tailwind CSS | 4.x | 样式框架 |
| Shadcn UI | - | UI 组件库 |
| Prisma | 6.11.1 | ORM |
| SQLite | - | 数据库 |
| React | 18.x | UI 库 |
git clone https://github.com/HanphoneJan/generate-poems.git
cd generate-poems
npm install
创建 .env 文件,添加以下内容:
DATABASE_URL="file:./db/custom.db" # ./ 代表 prisma 文件夹的根目录
API_BASE_URL="https://api.deepseek.com" #我使用了 DeepSeek 的 API 地址,可替换为其他 API 地址
API_KEY="xxxxx" # 替换为实际的 API 密钥
PORT=4666 # 项目运行端口
NODE_ENV=development # 可选,设置为 development 或 production
OPENAI_API_KEY="xxxxx" # 设置这个是为了Docker部署时,解决OPENAI_SDK触发的环境变量错误
npm run db:push
npm run db:generate
npm run dev
打开浏览器访问 http://localhost:4666
npm run build
npm run start
本项目支持使用 Docker 进行部署,适合在生产环境中快速部署和扩展。
详细部署教程请查看:Docker部署教程.md
├── prisma/ # Prisma 配置和数据库文件
├── public/ # 静态资源
├── src/
│ ├── app/ # Next.js 应用路由
│ │ ├── api/ # API 端点
│ │ ├── globals.css # 全局样式
│ │ ├── layout.tsx # 布局组件
│ │ └── page.tsx # 主页面
│ ├── components/ # 自定义组件
│ │ └── ui/ # Shadcn UI 组件
│ ├── hooks/ # 自定义钩子
│ └── lib/ # 工具函数
├── .env # 环境变量
├── .dockerignore # Docker 忽略文件
├── .gitignore # Git 忽略文件
├── LICENSE # 许可证
├── README.md # 项目说明
├── components.json # Shadcn 组件配置
├── eslint.config.mjs # ESLint 配置
├── next.config.ts # Next.js 配置
├── package.json # 项目依赖
├── postcss.config.mjs # PostCSS 配置
├── tailwind.config.ts # Tailwind CSS 配置
└── tsconfig.json # TypeScript 配置
获取所有生成的诗歌列表
响应示例:
{
"poems": [
{
"id": "1",
"type": "唐诗",
"theme": "春天",
"content": "春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。",
"createdAt": "2025-12-29T08:00:00.000Z"
}
]
}
保存生成的诗歌
请求体:
{
"type": "唐诗",
"theme": "春天",
"content": "春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。"
}
响应示例:
{
"id": "1",
"type": "唐诗",
"theme": "春天",
"content": "春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。",
"createdAt": "2025-12-29T08:00:00.000Z"
}
生成诗歌
请求体:
{
"type": "tang",
"theme": "春天"
}
响应示例:
{
"poem": "春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。"
}
</a>