zhongchuyi
Fix Gradio/huggingface_hub compatibility - upgrade to Gradio 5.x
7644a65
---
title: MahjongGameDesigner
emoji: 🀄️
colorFrom: green
colorTo: yellow
sdk: gradio
sdk_version: 5.9.1
app_file: app.py
pinned: false
---
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
## 这是什么
MahjongGameDesigner 是一个“麻将玩法生成与迭代”工具,输出三类交付物:
- **自然语言规则说明**(可直接给策划/制作/评审)
- **mGDL v1.3**(结构化规则描述,用于规范化与落地)
- **思维日志(设计日志)**(融合清单、冲突桥接、推演摘要、落地映射,便于人工复核)
工具提供两种关键能力:
- **Analyse 模式(单问题迭代)**:通过多轮问答把需求场景收敛到可生成状态(不生成 mGDL)
- **可控迭代(DesignState 驱动)**:基于上轮 DesignState 做最小修改,并限制本轮允许修改范围,减少漂移
## 快速开始(推荐流程)
### 1) 先用 Analyse 模式把需求收敛
1. 勾选:`Analyse 模式:单问题迭代完善需求(不生成mGDL)`
2. 在聊天框描述你的目标(例:想做“血战类 + 扎鸟机制 + 更强互动”的新玩法)
3. 模型每轮只会问你 1 个最关键问题,并输出:
- 本轮增量思维日志(≤200字)
- DesignState(JSON)
- `READY_TO_GENERATE: true/false`
4. 当 READY 为 true(或你认为信息已经足够),进入第2步
### 2) 一键生成完整玩法交付物
点击按钮:`基于当前 DesignState 生成完整玩法`
生成完成后可下载:
- `gdl_output.txt`(mGDL)
- `narrative_output.txt`(自然语言规则)
- `design_log_output.txt`(思维日志 / 设计日志)
### 3) 继续可控迭代(局部优化而不重写)
1. 取消勾选 Analyse 模式
2. 勾选:`启用可控迭代:基于上轮 DesignState 做最小修改`
3. 选择“本轮允许修改范围”(例如:仅优化创新机制)
4. 输入你的改动诉求(例:把主机制触发从“胡牌后”改成“听牌后”,并降低随机性)
系统会在输出后做一次“范围越界”提示(软提示,不会中断生成),帮助你保持“最小修改、低漂移”的多轮迭代。
## 输出与导出
- 自然语言与 mGDL 会自动从模型输出中提取并保存到 `exports/`
- 思维日志会从 `### 设计日志(创新推演摘要)` 段落提取并保存到 `exports/design_log_output.txt`
- 在 Analyse 模式下不会导出上述文件(因为 Analyse 模式不生成完整交付物)
## 当前阶段的规则准确性重点(必读)
现阶段主要聚焦“既有机制组合”,但必须保证麻将底层物理逻辑准确(手牌守恒、吃碰杠轮次、牌墙转移等)。因此生成模式下请重点检查输出是否包含并一致:
- 《动作—手牌变化—轮次影响表》
- 3段《最小回合推演》(普通/碰/杠,每行标注手牌张数变化)
- mGDL 的 `(invariants ...)` 中包含牌数守恒与“回合结束手牌恒为13”的约束
## 生成质量增强(默认开启)
为提升“玩法理解”与“创新落地”,系统默认会自动注入:
- `m_prompt.txt`:系统提示词规范(含自检、最小修复、输出格式)
- `麻将游戏mGDL通用语法_v1.3.txt`:mGDL v1.3 语法约束(用于保证输出形式)
- 与用户输入最相关的少量参考玩法 `.md`(规则真理,RAG 语义参考)
- `麻将机制说明.md`:机制词典(用于创新机制选型)
## 环境变量(可选)
### API / 模型
- `DEEPSEEK_API_KEY`:API Key
- `DEEPSEEK_BASE_URL`:OpenAI 兼容 Base URL
- `MODEL_NAME`:模型名
### RAG / 参考注入
- `ENABLE_REFERENCE_RETRIEVAL=1|0`:是否启用参考玩法检索注入(默认 1)
- `REFERENCE_MAX_VARIANTS=3`:最多注入多少个参考玩法(默认 3)
- `INJECT_REFERENCE_MGDL=1|0`:是否注入参考玩法 mGDL(默认 0;通常不建议,语义参考以 .md 为主)
- `INJECT_ALL_EXAMPLE_GDL=1|0`:是否额外注入全量示例 mGDL(默认 0,不推荐)
### 校验与修复
- `ENABLE_OUTPUT_VALIDATION=1|0`:是否对生成结果做静态校验提示(默认 1)
- `ENABLE_AUTO_REPAIR=1|0`:非流式路径下是否自动触发一次“最小修改修复”(默认 0)
## 常见问题
### 为什么 Analyse 模式不输出 mGDL?
Analyse 模式的目标是“收敛需求”,每轮只问 1 个关键问题并更新 DesignState,避免边问边生成导致漂移。READY 后请用“一键生成”得到完整交付物。
### 为什么会看到“静态校验”提示?
生成模式下,系统会对输出做轻量检查(例如缺少 mGDL、缺少核心模块、缺少设计日志等)。这只是提示,不会阻断;你也可以在环境变量中关闭校验提示。