Skip to content

worldwonderer/chat-simulator

Repository files navigation

Chat Simulator · 中文聊天剧情模拟器

像刷即时通讯软件一样进入剧情:玩家选择回复,角色即时回应,数值和分支一起把故事推向不同结局。

CI License: MIT Next.js Live Demo

在线演示:https://chat.vibecoco.ai/

这是一个基于 Next.js + React + DeepSeek 服务端代理 的中文聊天剧情游戏。AI 只负责把已有剧本回复润色得更自然;剧情跳转、数值变化和结局判定仍由本地 JSON 数据控制,因此生成失败时也会自动回退到原台词。

截图

首页 取名页
首页截图 取名页截图
聊天玩法 结局页
聊天玩法截图 结局页截图

主要功能

  • 手机聊天式 UI:消息气泡、打字状态、系统时间、底部选择面板。
  • 分支剧情:选择会影响好感、焦虑、下一场景和最终结局。
  • 随机角色开局:角色池来自 data/girls.json
  • AI 对话润色:浏览器只调用本地 /api/ai/chat,DeepSeek Key 始终留在服务端。
  • Vercel 友好:前端页面、API 路由、健康检查和生产来源白名单在同一项目内发布。

技术栈

技术
前端 Next.js 16 App Router · React
后端 Next.js Route Handlers(app/api/*
AI DeepSeek deepseek-v4-flash,服务端代理调用
数据 JSON 剧情、角色、章节、话术(data/
部署 Vercel

本地运行

要求 Node.js 20+(CI 使用 Node 22)和 DeepSeek API Key。

npm install
cp .env.example .env.local
# 填写 .env.local 里的 DEEPSEEK_API_KEY
npm run dev

生产构建:

npm run build
npm run start -- --port 4180

环境变量

变量 必填 默认值 说明
DEEPSEEK_API_KEY 服务端密钥,不要添加 NEXT_PUBLIC_ 前缀。
DEEPSEEK_MODEL deepseek-v4-flash AI 代理使用的模型。
DEEPSEEK_BASE_URL https://api.deepseek.com DeepSeek API 地址,必须为 HTTPS。
DEEPSEEK_TIMEOUT_MS 8000 上游请求超时(毫秒)。
APP_PUBLIC_URL 推荐 https://chat.vibecoco.ai 公开站点地址,用于元数据和生产来源校验。
AI_ALLOWED_ORIGINS 推荐 生产域名 逗号分隔的额外允许来源。NODE_ENV=production 下默认不放行 localhost。
AI_MAX_REQUEST_BODY_BYTES 16384 AI 接口请求体大小限制。
AI_RATE_LIMIT_WINDOW_MS 60000 单 IP 限流窗口。
AI_RATE_LIMIT_MAX_REQUESTS 30 单窗口最大请求数,设为 0 可关闭内存限流。

发布到 Vercel

  1. 在 Vercel 导入 Git 仓库。
  2. 添加 DEEPSEEK_API_KEY,并把 APP_PUBLIC_URL / AI_ALLOWED_ORIGINS 设置为正式域名。
  3. 确认没有把任何 DeepSeek 变量命名为 NEXT_PUBLIC_*
  4. Git 集成开启后,推送到 main 即可触发生产部署。

验证

提交或发布前运行:

make verify
# 或 npm run verify

该命令会依次检查仓库结构和剧情链接、模拟 DeepSeek 关键路径、构建 Next.js 应用,并校验 README 截图基线。依赖变更时建议额外运行:

npm audit --omit=dev

内容扩展

常用数据位置:

文件 用途
data/girls.json 角色池、头像、首场景
data/scenes.json 消息、选项、数值变化、跳转、结局
data/chapters.json 章节结构
public/ 头像、图标和静态资源

新增角色时,把头像放入 public/,在 data/girls.json 配置 firstScene,再在 data/scenes.json 中补齐对应场景。结局节点优先写显式 endingData,避免再改运行时代码。完成后运行 make verify

目录结构

.
├── app/                   # Next.js 页面与 API 路由
├── components/            # 聊天模拟器 UI、状态和剧情运行时
├── data/                  # 角色、章节、剧情和话术数据
├── docs/screenshots/      # README 截图
├── lib/ai/deepseek.js     # DeepSeek 服务端客户端
├── public/                # 静态资源
└── scripts/               # 仓库、AI、视觉验证脚本

安全、贡献与许可

  • 不要提交 .env.local、真实 API Key、node_modules/.next/
  • 游戏内容为虚构娱乐,不应用 AI 文本冒充真实人物。
  • 欢迎提交 Issue / PR;提交前请运行 make verify
  • 本项目基于 MIT 许可证 开源。

About

中文微信聊天剧情模拟器

Topics

Resources

License

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors