MahjongGameDesigner / default_content.py
Estazz's picture
Upload 3 files
e70ed9e verified
"""
默认内容模块 - 存储预加载的 GDL 规范和 System Prompt
"""
import os
# 默认 GDL 规范文件路径
DEFAULT_GDL_FILE = "麻将游戏mGDL通用语法_v1.3.txt"
# 默认 System Prompt 文件路径
DEFAULT_PROMPT_FILE = "m_prompt.txt"
# 支持的多个默认示例 GDL 文档文件名列表(扁平化结构)
DEFAULT_EXAMPLE_GDL_FILES = [
"两门血战麻将_mGDL_v1.3.txt",
"卡五星麻将_mGDL_v1.3.txt",
"合肥麻将_mGDL_v1.3.txt",
"妙手七星_mGDL_v1.3.txt",
"山西扣点麻将_mGDL_v1.3.txt",
"幺鸡血战_mGDL_v1.3.txt",
"广东100张_mGDL_v1.3.txt",
"广东鸡平胡_mGDL_v1.3.txt",
"武汉麻将_mGDL_v1.3.txt",
"海底捞月_mGDL_v1.3.txt",
"疯狂血战_mGDL_v1.3.txt",
"疯狂血流_mGDL_v1.3.txt",
"红中麻将_mGDL_v1.3.txt",
"经典推倒胡_mGDL_v1.3.txt",
"贵州捉鸡麻将_mGDL_v1.3.txt",
"长沙麻将_mGDL_v1.3.txt",
]
# 支持的多个默认示例 Markdown 文档文件名列表(扁平化结构)
DEFAULT_EXAMPLE_MD_FILES = [
"两门血战麻将.md",
"卡五星麻将.md",
"合肥麻将.md",
"妙手七星.md",
"山西扣点麻将.md",
"幺鸡血战.md",
"广东100张.md",
"广东鸡平胡.md",
"武汉麻将.md",
"海底捞月.md",
"疯狂血战.md",
"疯狂血流.md",
"红中麻将.md",
"经典推倒胡.md",
"贵州捉鸡麻将.md",
"长沙麻将.md",
"麻将机制说明.md",
]
def load_default_gdl():
"""
加载默认的 GDL 规范内容
"""
try:
gdl_path = os.path.join(os.path.dirname(__file__), DEFAULT_GDL_FILE)
if os.path.exists(gdl_path):
with open(gdl_path, "r", encoding="utf-8") as f:
return f.read()
except Exception as e:
print(f"⚠️ 加载默认 GDL 文件失败:{e}")
return ""
def load_default_prompt():
"""
加载默认的 System Prompt 内容
"""
try:
prompt_path = os.path.join(os.path.dirname(__file__), DEFAULT_PROMPT_FILE)
if os.path.exists(prompt_path):
with open(prompt_path, "r", encoding="utf-8") as f:
return f.read()
except Exception as e:
print(f"⚠️ 加载默认 Prompt 文件失败:{e}")
return ""
def load_default_example_gdl():
"""
加载默认的示例 GDL 文档内容
"""
try:
base_dir = os.path.dirname(__file__)
parts = []
for filename in DEFAULT_EXAMPLE_GDL_FILES:
if not filename:
continue
# 假定所有文件都在同一目录下
example_path = os.path.join(base_dir, filename)
if os.path.exists(example_path):
try:
with open(example_path, "r", encoding="utf-8") as f:
content = f.read()
if content:
parts.append(f"\n# FILE: {os.path.basename(example_path)}\n" + content.strip() + "\n")
except Exception as inner_e:
print(f"⚠️ 加载默认示例 GDL 文件失败:{example_path},错误:{inner_e}")
return "\n".join(parts).strip()
except Exception as e:
print(f"⚠️ 加载默认示例 GDL 文件失败:{e}")
return ""
def load_default_example_md():
"""
加载默认的示例 Markdown 文档内容
"""
try:
base_dir = os.path.dirname(__file__)
parts = []
for filename in DEFAULT_EXAMPLE_MD_FILES:
if not filename:
continue
# 假定所有文件都在同一目录下
example_path = os.path.join(base_dir, filename)
if os.path.exists(example_path):
try:
with open(example_path, "r", encoding="utf-8") as f:
content = f.read()
if content:
parts.append(f"\n# FILE: {os.path.basename(example_path)}\n" + content.strip() + "\n")
except Exception as inner_e:
print(f"⚠️ 加载默认示例 Markdown 文件失败:{example_path},错误:{inner_e}")
return "\n".join(parts).strip()
except Exception as e:
print(f"⚠️ 加载默认示例 Markdown 文件失败:{e}")
return ""
# 在模块加载时预加载内容(提高性能)
DEFAULT_GDL_CONTENT = load_default_gdl()
DEFAULT_PROMPT_CONTENT = load_default_prompt()
DEFAULT_EXAMPLE_GDL_CONTENT = load_default_example_gdl()
DEFAULT_EXAMPLE_MD_CONTENT = load_default_example_md()
def get_default_gdl():
return DEFAULT_GDL_CONTENT
def get_default_prompt():
return DEFAULT_PROMPT_CONTENT
def get_default_example_gdl():
return DEFAULT_EXAMPLE_GDL_CONTENT
def get_default_example_md():
return DEFAULT_EXAMPLE_MD_CONTENT