一步步接入百炼、Supabase 与邮件登录
没有密钥也可以先用演示模式走完整个流程。真实分析需要阿里云百炼 API;登录和历史记录需要 Supabase。所有密钥只填入本地 .env.local 或 Vercel 环境变量,不要发到聊天里。
创建 Supabase 项目
打开 Supabase,新建一个项目。进入 Project Settings → API,复制 Project URL、anon/public key 和 service_role key。service_role 只能放在服务端环境变量里。
打开 Supabase Dashboard执行数据库迁移
打开 SQL Editor,按顺序运行项目里的 supabase/migrations/001_initial.sql 与 supabase/migrations/002_real_product_schema.sql。前者保留演示兼容表,后者创建用户档案、简历版本、岗位、分析、配额和订阅表。
开启邮箱登录链接
进入 Authentication → Providers → Email,启用 Email。默认 Magic Link 模板即可使用;点击邮件中的链接后会进入/auth/callback,由页面建立会话。然后把 Site URL 和 Redirect URLs 设置为你的本地或线上地址。
本地:http://localhost:3000/auth/callback
线上:https://你的域名/auth/callback
SMTP 的正确位置
Supabase 自带邮件适合本地和小范围测试,有频率限制。正式公开前,在 Authentication → SMTP Settings 中填写 Resend 或阿里云邮件推送提供的 host、port、username、password 和发件人地址。SMTP 密码填写在 Supabase 控制台,不需要写进本项目的 .env.local。
注意:新建的 Free 项目如果仍使用默认 SMTP,可能无法自定义认证邮件模板; 需要先配置自定义 SMTP,才能稳定使用验证码模板。
开通阿里云百炼
登录阿里云百炼控制台,开通模型服务,创建业务空间并生成 API Key。 在模型调用示例中复制完整的 Base URL,通常以 /compatible-mode/v1 结尾。不要把 API Key 写进代码或提交到 Git。
Analysis Model
QWEN_ANALYSIS_MODEL=qwen3.8-maxUtility Model
QWEN_UTILITY_MODEL=qwen3.8-flash填写环境变量并自检
在项目根目录复制 .env.example 为 .env.local,逐项填入从控制台复制的值。不要把 .env.local 提交到 Git。
| 变量 | 用途 | 安全级别 |
|---|---|---|
DASHSCOPE_API_KEY | 百炼 API Key | 服务端私密 |
DASHSCOPE_BASE_URL | 百炼业务空间 Base URL | 服务端私密 |
QWEN_ANALYSIS_MODEL | 默认 qwen-plus(证据矩阵) | 公开配置 |
QWEN_UTILITY_MODEL | 默认 qwen-flash(联网检索与降级) | 公开配置 |
QWEN_STAGE_MODEL | 可选;改写/求职信/面试题/学习计划阶段模型,默认 qwen-flash | 公开配置 |
QWEN_PARSE_MODEL | 可选;岗位拆解模型,默认 qwen-flash(快),失败自动回退本地规则 | 公开配置 |
NEXT_PUBLIC_SUPABASE_URL | Supabase Project URL | 浏览器可见 |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase anon key | 浏览器可见 |
SUPABASE_SERVICE_ROLE_KEY | Supabase service role key | 仅服务端 |
SUPABASE_STORAGE_BUCKET | 默认 resume-files | 公开配置 |
NEXT_PUBLIC_APP_URL | 本地或线上完整地址 | 浏览器可见 |
RUN_TOKEN_SECRET | 随机长字符串,用于签名分析令牌 | 仅服务端 |
CRON_SECRET | Vercel 清理任务密钥 | 仅服务端 |
DEMO_MODE | 配置完成后设为 false | 公开配置 |
在项目根目录运行
pnpm setup:check pnpm dev
自检会验证环境变量、Supabase 表与存储桶、百炼最小调用;不会打印密钥本身。
部署到 Vercel
导入 Git 仓库后,在 Vercel 的 Environment Variables 中逐项添加相同的服务端变量。配置完成后把 DEMO_MODE 设为 false,并把线上域名加入 Supabase Auth 的 Site URL 与 Redirect URLs。