问题
每个养宠物的人都好奇过,那一声叫到底是什么意思。号称能翻译宠物语言的应用,要么是只会讲固定笑话的玩具,要么承诺一种根本不存在的科学。Dicitencell AI的想法是既诚实又有趣。它是一个承认自己在猜测的翻译器,会解读情境,并用那不勒斯方言作答。它还必须为将来发展成付费应用和 iOS 应用做好准备。
我做了什么
我开发了一个 Web 应用:您录下宠物的声音,应用就会告诉您它「说」了什么,一本正经,外加一句笑点。
- 动物译成人话——在浏览器中录制最长 15 秒的声音并选择情境。引擎会返回一种情绪、一个可能的意图、对行为的认真解读、一句那不勒斯方言的俏皮话、一个置信度分数,并在必要时给出安全提示。
- 人话译成动物语——输入您想说的话,就能得到关于语气、手势和简短口令的建议,外加一声合成的狗叫或猫叫。这些声音由代码合成,并明确标注为模拟。
- 七级那不勒斯方言——从「轻度」到「街坊狗」和「贵族猫」。
- 宠物档案——照片、品种、性格和习惯会直接写入提示词,因此懒猫和闹腾的小狗不会得到同一句话。翻译历史和六步引导流程让整个体验更加完整。
- 可替换的 AI 引擎——应用只对接一个接口。Claude 适配器要求返回严格的 JSON,并用 Zod 校验。如果缺少密钥或返回格式有误,模拟引擎就会接手,因此用户总能得到回答。
- 管理面板——用户和 API 密钥都在应用内管理。ElevenLabs 语音和 Stripe 支付的设置已经就位,为下一阶段做好准备。
技术栈
Next.js 14(App Router)、严格模式的 TypeScript、React 18 和 Tailwind CSS。Supabase 提供 Postgres、身份验证和存储。数据库结构有 15 张表,全部启用行级安全,用户只能读取自己的宠物和翻译记录。AI 通过官方 SDK 运行在 Anthropic Claude 上,且只在服务器端调用。Zod 校验输入和 AI 输出;Vitest 测试覆盖引擎。
为什么这样做
我采用了 API 优先的方式。所有逻辑都放在 REST 路由背后的服务器服务中,Web 界面只是其中一个客户端。计划中的 iPhone 版 SwiftUI 应用将调用相同的路由,而不必重写逻辑。付费访问也是同样的思路:内部套餐(免费、高级、管理员)保存在数据库中,Stripe 或 StoreKit 只负责设置它。


