47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
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 |