Skip to content

yong-huang/ChatArena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatArena

多智能体语言艺术平台 — 让 105 位历史角色用 AI 同台对话

Home

ChatArena 是一个基于本地大语言模型的多智能体互动平台。16 种互动场景、12 种内容生成流水线、105 位内置角色——李白和爱因斯坦辩论、诸葛亮主持狼人杀、苏轼参加脱口秀大赛,全部由本地 LLM 驱动,无需云端 API。

截图

首页 — 16 种互动场景

Home - 16 Game Types

剧本杀 — 多角色推理解谜

Mystery Game

开放麦 — AI 角色登台表演

Open Mic Show

穿越辩论 — 跨时代人物辩论

Time Travel Debate

智能体管理 — 105 位内置角色

Agent Management

历史记录 — 跨场景统一聚合

History

技术栈

技术
后端 Python 3.10+ / FastAPI / SQLAlchemy (async) / SQLite
前端 原生 HTML + CSS + JavaScript SPA(Hash 路由)
LLM Ollama 原生 API / OpenAI 兼容 API
测试 pytest + pytest-asyncio (146 个测试用例)

快速开始

# 安装依赖
pip3 install -e ".[dev]"

# 启动服务
python3 start.py
# → http://localhost:5200

前置条件:需要本地运行 LLM 服务(如 Ollama),在 Settings 页面配置模型连接。

运行测试

python3 -m pytest tests/ -v
python3 -m pytest tests/ -v --cov=server --cov-report=term-missing

互动场景

场景 说明 场景 说明
💬 聊天室 多角色自由聊天 🔮 塔罗牌 塔罗牌占卜
⚔️ 辩论 结构化辩论对决 💕 相亲 相亲角模拟
📋 会议室 多角色会议模拟 🔍 剧本杀 推理解谜游戏
🎤 开放麦 开放麦表演 ⏰ 穿越辩论 跨时代人物辩论
📜 飞花令 古诗词飞花令 💼 创业路演 创业项目路演
🎯 穿越面试 跨时代面试模拟 🔥 吐槽大会 吐槽对抗
🎭 脱口秀大赛 脱口秀竞技 ⚖️ 法庭审判 模拟法庭
📺 真人秀 真人秀模拟 🐺 狼人杀 狼人杀桌游

内容生成流水线

分类 说明 分类 说明
😂 笑话 多风格笑话生成与评分 📖 评书 评书风格叙事
🎭 相声 对口相声(逗哏/捧哏) 🪘 快板 快板书创作
🎤 脱口秀 脱口秀段子生成与评价 🎬 小品 小品剧本生成
🗣️ 辩论 正反方辩论与裁判 🎭 双簧 双簧表演脚本
🧠 逻辑 逻辑谬误分析 🎙️ 诗朗诵 朗诵诗文创作
🪘 三句半 三句半创作

核心架构

用户请求
  ↓
FastAPI 路由(23 个 API 模块)
  ↓
AgentEngine — 编排层
  ├─ 解析智能体(WriterAgentConfig 统一表)
  ├─ 委托 PipelineRegistry 按分类路由
  ↓
Pipeline(11 个独立实现)
  ├─ Writer Agent → LLM 生成内容
  ├─ Audience Agent → LLM 评价打分
  ├─ AgentInteractions → 多轮对话管理
  └─ 持久化到 SQLite
  ↓
返回结果(同步 JSON / SSE 流式)
  • AgentRunner: 通用 LLM 调用器,每个角色独立的 system_prompt + output_format
  • PipelineRegistry: 分类 → Pipeline 映射,支持运行时注册
  • AgentEngine: 统一编排,处理智能体解析、错误恢复、结果聚合

内置角色

105 位角色分 12 个类别:

类别 代表角色
中国古代文人 李白、杜甫、苏轼、辛弃疾、李清照、陶渊明、白居易、王维、曹雪芹
诸子百家 孔子、庄子、老子、孙子、韩非子、孟子
近现代作家 鲁迅、胡适、钱钟书、张爱玲、老舍、沈从文、林语堂
西方哲学家 苏格拉底、柏拉图、亚里士多德、尼采、伏尔泰、黑格尔、罗素
科学家 爱因斯坦、牛顿、达尔文、特斯拉、居里夫人、霍金、费曼、图灵
艺术家 莎士比亚、莫扎特、贝多芬、米开朗基罗、达芬奇
游戏角色 林克、马里奥、阿尔萨斯、2B、克劳德、希尔瓦娜斯
历史人物 诸葛亮、华佗、鲁班、康熙皇帝、伊丽莎白一世、拿破仑
网络文化 北京朝阳大妈、豆瓣文艺青年、知乎大V、B站弹幕众、AI 研究员
跨界角色 维京海盗船长、中世纪骑士、丝绸之路商人、NASA 宇航员

支持自定义创建、编辑、复制智能体。

数据库设计

核心表: writer_agent_configs(统一智能体)、ai_configs(模型配置)、joke_sessions / jokes / audience_feedbacks(Pipeline 生成)、agent_interactions(对话记录)

游戏表: 16 组三表结构(session + participant + message),共 48 张表

API

POST   /api/generate            # 同步生成
POST   /api/generate/stream     # SSE 流式生成
GET    /api/agents              # 列出智能体
POST   /api/agents              # 创建智能体
PUT    /api/agents/{id}         # 更新智能体
DELETE /api/agents/{id}         # 删除智能体
POST   /api/agents/{id}/copy    # 复制智能体
GET    /api/history/games       # 统一历史(跨 17 张表聚合)
GET    /api/history/{id}        # 会话详情
DELETE /api/history/{id}        # 删除会话
GET    /api/settings            # 获取设置
POST   /api/settings/ai         # 创建模型配置
POST   /api/settings/ai/test    # 测试连接

许可证

MIT License

免责声明

ChatArena 中所有智能体角色的人设、性格特征、说话风格和观点均为虚构创作,仅供娱乐和学习目的。这些角色人设不代表任何真实人物(历史人物、公众人物或虚构角色版权所有者)的实际观点、言行或立场。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors