Skip to content

JarvisPMS/tokenplay

Repository files navigation

TokenPlay

玩转Tokens— 把各平台的大模型聚集起来搞点事情。

TokenPlay

支持单聊、群聊、角色扮演、批量测试、AI对战、API密钥管理。

功能特性

平台管理

  • 支持 OpenAI、Anthropic 及自定义协议
  • 一个平台可同时配置多个协议端点,共享模型列表
  • API 健康检查

批量测试

  • 自定义系统提示词
  • 一个prompt,一键批量测试多个平台
  • 同屏对比结果
  • 对比延迟、速度、tokens消耗等指标
  • 完整记录测试结果

单聊对话

  • 一对一与单个模型对话

群聊对话

  • 广播模式: 所有模型并行回复同一个问题,方便对比
  • 接力模式: 模型轮流链式回复,模拟多人讨论
  • 支持暂停/继续/停止控制
  • 可设置消息数上限

对战系统

  • 支持 AI 发起 五子棋中国象棋 对战
  • 可选择不同平台或角色作为双方参与者
  • 实时查看棋盘、对局状态、胜负结果与步数记录

角色系统

  • 创建角色并绑定特定平台和模型
  • 自定义头像(图片上传或 emoji)
  • 群聊中可选择角色作为参与者,同一模型可扮演不同角色
  • 4 层系统提示词组合:平台提示词 → 角色提示词 → 会话提示词 → 接力上下文

快速开始

确保电脑上已经安装了nodejs,然后:

# 安装依赖
npm install

# 启动开发服务器
npm run dev

打开 http://localhost:3000,进入「平台管理」添加你的第一个 API 平台。

开源与安全说明

TokenPlay 默认按本地单用户工具设计,运行时数据会写入 data/ 目录。开源或发布前请确认只提交 data/examples/*.json,不要提交真实的 data/*.json、聊天记录、测试结果、对战记录、API Key 文件、.env.localdata/.tokenplay-secret 或上传头像。

API Key 会使用 AES-256-GCM 加密落盘,密钥来自 TOKENPLAY_LOCAL_SECRET 或首次运行时自动生成的 data/.tokenplay-secret。这只能降低本地文件被随手搜索到明文 key 的风险,不能替代系统级密钥管理。

不要把本项目直接暴露到公网。当前 API 路由假设访问者是可信本地用户,公网部署前需要自行增加鉴权、授权、CSRF 防护、限流和生产级密钥管理。

更多细节见 SECURITY.md

技术栈

  • 框架: Next.js 15 (App Router) + React 19
  • 语言: TypeScript
  • 样式: Tailwind CSS + shadcn/ui
  • 数据: 本地 JSON 文件存储(零外部数据库依赖)
  • 流式传输: NDJSON over ReadableStream
  • API SDK: OpenAI SDK + Anthropic SDK

项目结构

src/
├── app/              # 页面和 API 路由
├── components/       # React 组件
│   ├── ui/           # 通用 UI 组件
│   ├── platforms/    # 平台相关组件
│   └── layout/       # 布局组件
└── lib/
    ├── types.ts      # 类型定义
    ├── store/        # 数据读写
    └── api-clients/  # 统一 API 客户端
data/                 # 运行时数据(JSON 文件)
docs/                 # 设计文档

About

tokenplay- 玩转Token,Token照妖镜,纯度检测器!

Resources

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors