from vars import models_trust def trust_key(m: list): if len(m) >= 3: return m[0] + '*' + m[1] + '*' + m[2] return m[0] + '*' + m[1] def update_trust(m: list, text: dict): provider_key = m[0] model_key = trust_key(m) if provider_key not in models_trust: set_trust(provider_key, 80.0) if model_key not in models_trust: set_trust(model_key, 60.0) if text['type'] == 'error': if models_trust[model_key] > 10: models_trust[model_key] += -0.5 models_trust[provider_key] += -0.08 elif text['type'] == 'net': if models_trust[model_key] > 10: models_trust[model_key] += -0.2 models_trust[provider_key] += -0.05 elif text['type'] == 'da': if models_trust[model_key] < 100: models_trust[model_key] += 2 models_trust[provider_key] += 0.2 def get_trust(m: list): return models_trust.get(m[0], 80.0), models_trust.get(trust_key(m), 60.0) def get_display_trust(m: list): base_key = m[0] + '*' + m[1] values = [] for key, val in models_trust.items(): if key == base_key or key.startswith(base_key + '*'): values.append(val) if not values: return 60.0 return sum(values) / len(values) def set_trust(m: str, trust: float): models_trust[m] = trust