File size: 4,858 Bytes
a705843
 
 
 
 
 
15e7ed4
a705843
 
15e7ed4
85d6a2d
1049909
9c1af0b
1049909
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85d6a2d
 
1049909
85d6a2d
1049909
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e70ed9e
9c1af0b
a705843
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9c1af0b
 
 
 
 
 
1049909
9c1af0b
 
 
 
 
 
 
 
 
 
 
a705843
 
9c1af0b
a705843
 
85d6a2d
 
 
 
 
 
 
 
 
 
 
1049909
85d6a2d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a705843
 
 
 
85d6a2d
a705843
 
 
 
 
 
 
 
 
 
 
 
 
85d6a2d
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
"""
默认内容模块 - 存储预加载的 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