演示站: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_KEYprocess.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. 输入参数: 数量 (1-10)、地区 (Region Enum)、性别 (Male/Female/Any)、年龄段。
  2. 输出要求:
    • 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;  };}