一个开源的 AI 对话说服小游戏。你用嘴(打字)去说服一个死活不肯松口的 AI 角色,让它做它本来不愿做的事。每个角色有人设、有隐藏软肋、有一踩就翻车的红线。支持任意 OpenAI 兼容端点(中转 / DeepSeek / GLM / Kimi / 本地都行),Vercel 或自托管一键上。
仓库: https://github.com/cranux/TalkOut · 在线体验: https://talk-out-kappa.vercel.app/
这玩意儿是啥
「嘴遁」= 嘴炮忍术。给你 8 个性格各异的对手:门卫·老张、海关 AI·K 、前任·小薇、老板·王总、外星调查员·Zorp 、退款 AI·9527 、丈母娘·王阿姨、智能门锁·小锁。
每个角色不是随便聊聊:
- 有隐藏软肋 —— 你得试探着戳中它真正在意的点,空泛求情/情绪施压一律 0 分甚至倒扣;
- 有红线 —— 威胁、甩锅、摆烂……一踩当场翻车;
- 说服度条 + 回合上限 —— 攒满说服度算赢,回合耗尽就 GG 。
最骚的设计:AI 一次调用里同时当演员又当裁判 —— 既以角色身份回你台词,又给这句话打分(说服度 ±、情绪、是否踩红线),一个结构化输出搞定。
功能
- 🎭 8 角色自由练习
- 🏆 每日同题:全网当天同一个对手,比谁回合最少,排行榜上榜
- 🖼️ 战报卡:一局结束生成可分享的 PNG 战报,移动端直接调系统分享
- 🎨 4 套新粗野主义配色主题(牛皮纸 / 夜墨 / 蜜桃 / 薄荷),PC / 手机自适应
- 🙈 免登录(匿名 ID),开箱即玩
技术栈 / 对自托管友好的点
- Next.js 15 + React 19 + TS,前后端一体
- 模型层统一 OpenAI 协议,配置就三件套:
LLM_API_KEY+LLM_MODEL+LLM_BASE_URL。任何兼容端点都能塞 —— 官方、DeepSeek 、通义、Kimi 、GLM 、中转网关、本地 Ollama 随便 - 思考/推理模型也能用:结构化输出做了自适应降级链
工具调用 → response_format(json_object) → 纯提示词,碰到不支持tool_choice的思考模型自动下沉,不会一上来就 400 - 存储双后端自动切换:配了 Upstash Redis 就用 Redis,没配就用本地文件
.data/,代码零改动 - 一份挺全的
DEPLOY.md:Vercel+Upstash(都有免费额度)/ systemd+Nginx / Docker / 国内访问注意事项 全写了
部署
git clone https://github.com/cranux/TalkOut && cd TalkOut
npm install
cp .env.example .env.local # 填 LLM_API_KEY + LLM_MODEL(+ 可选 base_url)
npm run dev
云端就 Vercel 导入 + 配几个环境变量