检查健康数据是否为空 检查指定模型在所有源上的健康数据是否全部为空数组。 对于健康检测屏蔽清单中的模型,始终返回True以强制使用预设排名。 Args: model_name (str): 要检查的模型名称 Returns: bool: 如果所有健康数据都是空数组则返回True,否则返回False
(self, model_name)
| 200 | return ranking_3 |
| 201 | |
| 202 | def is_health_data_empty(self, model_name): |
| 203 | """检查健康数据是否为空 |
| 204 | |
| 205 | 检查指定模型在所有源上的健康数据是否全部为空数组。 |
| 206 | 对于健康检测屏蔽清单中的模型,始终返回True以强制使用预设排名。 |
| 207 | |
| 208 | Args: |
| 209 | model_name (str): 要检查的模型名称 |
| 210 | |
| 211 | Returns: |
| 212 | bool: 如果所有健康数据都是空数组则返回True,否则返回False |
| 213 | """ |
| 214 | try: |
| 215 | # 检查模型是否在健康检测屏蔽清单中 |
| 216 | if model_name in health_check_blacklist: |
| 217 | self.logger.info(f"模型 {model_name} 在健康检测屏蔽清单中,强制使用预设排名") |
| 218 | return True |
| 219 | |
| 220 | # 检查健康数据是否有效 |
| 221 | if not self.healthy or "data" not in self.healthy or not self.healthy["data"]: |
| 222 | self.logger.warning(f"模型 {model_name} 的健康数据为空或无效") |
| 223 | return True |
| 224 | |
| 225 | # 不再处理多模态模型名称,直接使用完整的model_name |
| 226 | |
| 227 | # 寻找该模型在任意源上的非空数据 |
| 228 | for key, value in self.healthy["data"].items(): |
| 229 | try: |
| 230 | if len(key) >= 2 and key[1] == model_name and value and len(value) > 0: |
| 231 | return False |
| 232 | except Exception as e: |
| 233 | self.logger.warning(f"处理健康数据键 {key} 时出错: {str(e)}") |
| 234 | continue |
| 235 | |
| 236 | self.logger.info(f"模型 {model_name} 在所有源上的健康数据均为空") |
| 237 | return True # 所有源的该模型数据均为空 |
| 238 | except Exception as e: |
| 239 | self.logger.error(f"检查模型 {model_name} 的健康数据时出错: {str(e)}") |
| 240 | return True # 出错时假设数据为空,使用预设排名 |
| 241 | |
| 242 | def get_sources_from_ranking(self, model_name): |
| 243 | """基于预设排名获取源和模型配置 |
no outgoing calls