Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -21,6 +21,20 @@ output_dir = "./question_bank"
|
|
| 21 |
# 載入題庫字典(question_bank_dict),格式為 { "年級_學期": [題庫檔名列表] }
|
| 22 |
question_bank_dict = json.load(open(f"{output_dir}/question_bank_dict.json", "r"))
|
| 23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
def random_questions_with_limit(data, limit=20000):
|
| 25 |
"""
|
| 26 |
隨機從 data 中挑選題目,並將總字串長度限制在 limit 字元數內(至少不小於 5000)。
|
|
@@ -147,7 +161,7 @@ def generate_math_questions(grade, term, qtype="Unspecified", num_questions=10):
|
|
| 147 |
)
|
| 148 |
|
| 149 |
response = completion.choices[0].message.content
|
| 150 |
-
|
| 151 |
print(response)
|
| 152 |
|
| 153 |
# 傳回模型產生的文本
|
|
|
|
| 21 |
# 載入題庫字典(question_bank_dict),格式為 { "年級_學期": [題庫檔名列表] }
|
| 22 |
question_bank_dict = json.load(open(f"{output_dir}/question_bank_dict.json", "r"))
|
| 23 |
|
| 24 |
+
import re
|
| 25 |
+
|
| 26 |
+
def remove_think_tags(content):
|
| 27 |
+
"""刪除 <think>...</think> 標籤及其內容的正規表達式解法"""
|
| 28 |
+
# pattern = r'<think>.*?</think>'
|
| 29 |
+
# cleaned_content = re.sub(pattern, '', content, flags=re.DOTALL)
|
| 30 |
+
|
| 31 |
+
# 刪除所有 <think> 標籤及其內容
|
| 32 |
+
content = re.sub(r'<\s*think[^>]*>.*?<\s*/\s*think\s*>', '', content, flags=re.DOTALL)
|
| 33 |
+
# 清除殘留空行 (連續兩個以上換行符)
|
| 34 |
+
content = re.sub(r'\n{3,}', '\n\n', content)
|
| 35 |
+
|
| 36 |
+
return cleaned_content.strip()
|
| 37 |
+
|
| 38 |
def random_questions_with_limit(data, limit=20000):
|
| 39 |
"""
|
| 40 |
隨機從 data 中挑選題目,並將總字串長度限制在 limit 字元數內(至少不小於 5000)。
|
|
|
|
| 161 |
)
|
| 162 |
|
| 163 |
response = completion.choices[0].message.content
|
| 164 |
+
response = remove_think_tags(response)
|
| 165 |
print(response)
|
| 166 |
|
| 167 |
# 傳回模型產生的文本
|