给你的歌词加上 Emoji!
受启发于各种评论区中的文案,制作了一个用 LLM (DeepSeek-Chat) 为 Vocaloid 歌词等文案自动添加发癫 emoji 的小工具:
下面是项目的 GitHub 仓库,喜欢的话可以给一个 Star🌟!
项目介绍
主要分成三个部分:
- 前端:使用 Vue3 构建的 Web UI,用户输入歌词/文案并选择增强风格,托管在 Cloudflare Pages。
- API 网关:使用 Cloudflare Worker 接收前端请求,进行数据验证和转发。
- LLM 处理:使用 DeepSeek API,根据提示词对文本进行 emoji 增强处理。
输出文本样例
花と水飴、最終電車 - n-buna/初音ミク
1
2
3
4
5
6
7
8晴れた☀️雲🌥️を見ていた👀
昨日🌙夜空🌟に重ねた青💙を
浅く🌫️影⚫に隠れた🚶♂️
君💔の描いた空🌌が消えない❌
忘れたら💭 君👤はいなくなるから🚪
揺らいだ🌀昨日📜を思い出せ🤔
あの夏☀️にいつか🎁届いたのなら📬
昨日🌙に遠い🌠 遠い🌠花束💐
0.01 元的 API 大约可调用本项目的服务 20 次。
主要提示词
所有提示词都写死在了代码中,读者可以直接到源代码中查看。
增强版的提示词如下,可供参考(2026 年 3 月):
1 | |
如果你有更好的解决方案或建议,可以提交 PR 或 issue!
主要技术栈
本项目是一个典型 CS 架构工程。
| 层级 | 技术 | 版本 | 介绍 |
|---|---|---|---|
| 前端 | Vue 3 | 3.5.24 | 响应式 UI 框架 |
| 前端 | TypeScript | 5.9 | 类型安全 |
| 前端 | Element Plus | 2.7.7 | UI 组件库 |
| 前端 | Vite | 7.2.4 | 构建工具 |
| 前端 | Cloudflare Pages | / | CDN 托管与部署 |
| 后端 | Cloudflare Workers | / | Serverless 计算 |
| 后端 | TypeScript | 5.5 | 类型安全 |
| 后端 | Wrangler CLI | 4.60.0 | 部署和开发工具 |
| 后端 | Vitest | 3.2.0 | 单元测试 |
| 外部服务 | DeepSeek API | / | 大语言模型 |
| 外部服务 | Cloudflare Turnstile | / | 人机验证 |
| 外部服务 | Cloudflare Rate Limiting | / | 请求频率控制 |
限流和人机验证
由于涉及付费 API 调用,本次工作重点是防止滥用导致费用增加,实现了几项安全措施和性能改进。
Rate Limiting 限流
Cloudflare 官方提供了 Worker 的限流功能,可以配置 wrangler 来使用,用于防止客户端过于频繁地调用 API。
配置对应的 wrangler.jsonc 字段:
1 | |
后端代码示例:
1 | |
成功部署后 wrangler 会显示绑定信息确认限流已生效:
1 | |
Turnstile 人机验证
Cloudflare Turnstile 是一个现代化的人机验证解决方案,替代了传统的 reCAPTCHA,高效好用。
graph TD
A["用户访问前端页面"] -->|页面加载| B["前端加载 Turnstile 脚本<br/><code>script src=...turnstile.js</code>"]
B -->|脚本就绪| C["Turnstile 小组件渲染<br/>显示验证挑战<br/>行为分析或简单谜题"]
C -->|用户完成挑战| D["前端获得 token UUID<br/>储存在 JavaScript 变量"]
D -->|随请求发送到后端| E["<code>POST /enhance {turnstileToken}</code>"]
E -->|HTTPS| F["后端 Worker 收到请求<br/>提取 turnstileToken 参数"]
F -->|发起远程验证| G["调用 Turnstile siteverify API"]
G -->|向 Cloudflare 验证| H["Cloudflare 验证 token<br/>返回 <code>success: true/false</code>"]
H -->|成功| I["<code>success: true</code><br/>继续处理请求"]
H -->|失败| J["<code>success: false</code><br/>返回 403 Forbidden"]
style A fill:#e1f5ff
style C fill:#fff3e0
style D fill:#f3e5f5
style G fill:#e8f5e9
style I fill:#c8e6c9
style J fill:#ffcdd2
首先需要在前端集成,在 HTML 的 <head> 或 <body> 末尾添加:
1 | |
随后需要创建容器,并将相关逻辑初始化,后端也差不多,具体可以直接参考相关文档和代码。
不过需要注意的是就是需要在 Cloudflare 创建 Turnstile Token,并同时放在前端和后端的环境变量中。
给你的歌词加上 Emoji!
https://blog.kisechan.space/2026/kashi-emojilize/
