
演示站:https://duoguodizhi.com/
核心任务
请作为一个资深全栈工程师,协助我开发/完善名为 "DuoguoDizhi (多国地址生成器)" 的 Web 应用。这是一个免费、开源的工具,利用 Google Gemini AI 生成全球多国(如美、日、韩、中等)的虚构但高度真实的身份信息。
技术栈规范
- Frontend: React (19+), TypeScript.
- Styling: Tailwind CSS (使用 Zinc/Gray 调色盘,追求极简主义风格).
- Icons: Lucide React.
- AI SDK:
@google/genai (必须使用 ai.models.generateContent 方法,支持 responseSchema 结构化输出).
- Environment: 支持
process.env.API_KEY 和 process.env.API_BASE_URL (用于中转代理).
设计语言 (UI/UX)
- 色调: 纯白背景 (#ffffff),文字使用 Zinc-900,边框使用 Zinc-100。
- 字体: 正文使用 Inter/Sans-serif,数据展示部分(如卡号、UUID)必须使用 JetBrains Mono 字体。
- 布局: 顶部粘性 Header,中央内容区最大宽度 5xl (1024px),底部极简 Footer。
- 交互:
- 所有生成的数据项点击即可复制,并伴随 Check 勾选反馈。
- 支持中英文一键切换 (i18n)。
- 导出功能:支持一键下载 JSON 和 CSV 格式。
- 生成过程需有优雅的 Loading 动画(使用
Loader2 旋转效果)。
核心逻辑:AI 数据生成 (Gemini Service)
- 输入参数: 数量 (1-10)、地区 (Region Enum)、性别 (Male/Female/Any)、年龄段。
- 输出要求:
- JSON 格式: 严格遵守预定义的
UserProfile Schema。
- 语言规则:
- 本地化字段: 姓名、地址、街道、区县、职业、公司名、密保问题、教育程度必须使用目标地区的母语(如日本用日语,中国用中文)。
- 通用字段: 用户名、密码、邮箱、UUID、User-Agent、信用卡号必须使用半角英文/拉丁字符。
- 真实性: 电话格式、邮编、州/省缩写、身份证号段必须符合该国的真实逻辑,但数据必须是虚构的 (Fictional)。
数据结构 (TypeScript)
export interface UserProfile {
id: string;
basic: {
firstName: string; lastName: string; gender: string; title: string;
birthday: string; age: number; hairColor: string; bloodType: string;
height: string; weight: string; education: string;
};
address: {
street: string; city: string; county: string;
state: string; stateFull: string; zipCode: string; country: string;
};
contact: { phone: string; };
employment: { occupation: string; company: string; companySize: string; status: string; salary: string; };
financial: { cardType: string; creditCardNumber: string; cvv: string; expiry: string; };
ssn: string;
nationalId: string;
internet: {
username: string; password: string; email: string; tempEmail: string;
website: string; userAgent: string; os: string; uuid: string;
securityQuestion: string; securityAnswer: string;
};
}