Files
uzbekgpt/trust.py
T

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