YucYux
commited on
Commit
·
f6ba9f2
1
Parent(s):
6cadff6
Fixed an error during asynchronous model loading
Browse files
app.py
CHANGED
@@ -165,17 +165,38 @@ def handle_model_selection_change(selected_model_name_ui):
|
|
165 |
# 尝试加载模型
|
166 |
status_msg = _load_model_and_tokenizer_core(actual_path, selected_model_name_ui)
|
167 |
|
168 |
-
#
|
169 |
model_load_failed = False
|
170 |
|
171 |
-
#
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
model_load_failed = True
|
178 |
-
status_msg = f"
|
179 |
|
180 |
if model_load_failed:
|
181 |
# 如果是 MixCoT 模型但加载失败,则关闭 thinking mode
|
|
|
165 |
# 尝试加载模型
|
166 |
status_msg = _load_model_and_tokenizer_core(actual_path, selected_model_name_ui)
|
167 |
|
168 |
+
# 修复后的错误检查逻辑:只依赖状态消息来判断是否成功
|
169 |
model_load_failed = False
|
170 |
|
171 |
+
# 检查状态消息中是否包含明确的错误指示
|
172 |
+
error_indicators = [
|
173 |
+
"Error loading model",
|
174 |
+
"Failed to",
|
175 |
+
"Cannot load",
|
176 |
+
"not defined",
|
177 |
+
"not yet available"
|
178 |
+
]
|
179 |
+
|
180 |
+
# 成功指示(任一存在则认为成功)
|
181 |
+
success_indicators = [
|
182 |
+
"loaded to", # "Model 'XXX' loaded to cuda"
|
183 |
+
"is already loaded", # "Model 'XXX' is already loaded"
|
184 |
+
"loaded.", # "Tokenizer loaded."
|
185 |
+
]
|
186 |
+
|
187 |
+
# 检查是否有错误指示
|
188 |
+
for error_indicator in error_indicators:
|
189 |
+
if error_indicator in status_msg:
|
190 |
+
model_load_failed = True
|
191 |
+
break
|
192 |
+
|
193 |
+
# 如果没有错误指示,检查是否有成功指示
|
194 |
+
if not model_load_failed:
|
195 |
+
has_success_indicator = any(success_indicator in status_msg for success_indicator in success_indicators)
|
196 |
+
# 如果既没有错误指示也没有成功指示,那就可能有问题
|
197 |
+
if not has_success_indicator:
|
198 |
model_load_failed = True
|
199 |
+
status_msg = f"Uncertain model loading status for '{selected_model_name_ui}'. {status_msg}"
|
200 |
|
201 |
if model_load_failed:
|
202 |
# 如果是 MixCoT 模型但加载失败,则关闭 thinking mode
|