语言 / Language: 中文 · English
用 AI 重构撤离射击的战前资源管理 — 一个嵌进玩家决策路径的副官,而不是 ChatGPT 套壳。
🌐 线上演示: https://copilot.mxltime.xyz/
副官的不可替代价值,必须在三个具体瞬间得到证明:
| # | 名称 | 触发 | 副官输出 | ChatGPT 套壳做不到 |
|---|---|---|---|---|
| ① | 理解模糊意图 | 玩家说「我比较菜」 | 翻译为:压低装备总价 / 偏保守打法 / 不带高级武器 | 会先反问「什么叫菜?」 |
| ② | 解释代价 | 把 AKM 换成 MP5 | 0.7 秒返回 verdict + delta + 场景化推理 | 只会泛泛说「MP5 更轻」 |
| ③ | 情境推理 | 同一玩家,换一张地图 | 推荐方案从骨架到细节完全不同 | 查表 + 模板做不到 |
git clone https://github.com/<YOUR_USERNAME>/loadout-copilot.git
cd loadout-copilot
npm install
npm run dev打开 https://copilot.mxltime.xyz/ 即可。本地开发环境默认在 http://localhost:3000 启动。
默认是 Mock 模式 —— 不需要任何 API key。三个端点 (/api/recommend /api/cost /api/chat) 都返回内置模拟数据,可以演示三个 AI 时刻的完整体验。
要接真 OpenAI:把 .env.local.example 复制为 .env.local,填入 OPENAI_API_KEY,然后在 app/api/*/route.ts 里取消注释 generateObject / generateText 部分(目前调用已被注释,改用 mock)。
页面打开会弹一个启动 splash —— 点 ▶ 开始语音演示 自动跑完 16 个场景(~3 分钟,带 TTS 旁白)。其余你可以:
- 自己挑地图 + 输意图(比如 "今晚想去核心污染区刷点钛合金,我比较菜")→ 点请求方案
- 点装备槽位调整,看 verdict + delta 解释
- 切到不同地图重新提交,看跨情境推理
- 右下角浮动副官-薇可以直接问她问题(命中"夜视/护甲/地图/撤离/推荐"等关键词)
- Next.js 16 (Turbopack) + TypeScript + React 19
- Tailwind CSS 4 — 自定义 design token(深黑 + 琥珀金 + advisor 蓝)
- Vercel AI SDK + Zod schema(用于真 LLM 模式;mock 模式下沿用类型不调外网)
- 无任何后端,纯前端 + Edge API routes
app/
├── app/ # Next.js App Router
│ ├── page.tsx # 主仪表盘 (top nav + 3 列 + 底部状态栏)
│ ├── globals.css # design token + HUD 工具类
│ └── api/
│ ├── recommend/ # 完整 loadout 推荐(mock)
│ ├── cost/ # 换装代价评估(mock)
│ ├── chat/ # 副官问答(mock)
│ └── tts/ # TTS 缓存(真 OpenAI,可选)
├── components/
│ ├── TacticalCard.tsx # AI 推荐卡(7 槽位 + 属性 + 风险/缺口/备选)
│ ├── AdjustPanel.tsx # 换装代价面板
│ ├── MissionConfirmation.tsx # 出战确认弹窗(最后一道容错关)
│ ├── Companion.tsx # 右下角浮动副官(语音 + 聊天)
│ ├── DemoController.tsx # 启动 splash + 自动演示控制台
│ └── HowItWorks.tsx # 方法论说明
├── lib/
│ ├── mock-data.ts # 玩家档案 / 装备清单 / 地图定义
│ ├── mock-responses.ts # 三端点的模拟生成器(按地图 + 意图分支)
│ ├── icons.tsx # 装备槽位 / UI 内联 SVG
│ ├── map-art.tsx # 地图卫星图 SVG(按 map 不同配色)
│ ├── types.ts # 共享类型
│ ├── schemas.ts # Zod 输出校验
│ ├── prompts.ts # System prompt + context builder
│ └── cost.ts # CostAnalysis 类型 + payload
└── public/demo-audio/ # TTS 预制语音(16 个场景)
刻意不做的事(防止 AI 越权,保留品类核心乐趣):
- 不自动消耗资源 — 所有权感是核心乐趣
- 不替玩家拍板 — 体现 Copilot,而不是 Autopilot
- 不演 NPC — 评审会视作"游戏化套壳"
- 不推荐玩家没有的装备 — 不变成购物清单
All third-party assets used are either MIT-licensed or generated procedurally. The Black Tide universe is fictional and made for this project.