in sdk/python/foundation-models/system/inference/text-to-image/scoring-files/score_online.py [0:0]
def iterate(obj, current_key=None):
if isinstance(obj, dict):
severity = 0
for key, value in obj.items():
obj[key], value_severity = iterate(value, key)
severity = max(severity, value_severity)
return obj, severity
elif isinstance(obj, list) or isinstance(obj, np.ndarray):
severity = 0
for idx in range(len(obj)):
obj[idx], value_severity = iterate(obj[idx])
severity = max(severity, value_severity)
return obj, severity
elif isinstance(obj, pd.DataFrame):
severity = 0
columns = obj.columns
for i in range(obj.shape[0]): # iterate over rows
for j in range(obj.shape[1]): # iterate over columns
obj.iloc[i][columns[j]], value_severity = iterate(
obj.iloc[i][columns[j]], columns[j]
)
severity = max(severity, value_severity)
return obj, severity
elif isinstance(obj, str):
if _check_data_type_from_model_signature(current_key) == "binary":
severity = analyze_image(obj)
else:
severity = analyze_text(obj)
if severity >= aacs_threshold:
return "", severity
else:
return obj, severity
else:
return obj, 0