in source/consumer/lambda_handler.py [0:0]
def process_content_moderation(asset, workflow, results):
metadata = json.loads(results)
es = connect_es(es_endpoint)
extracted_items = []
if isinstance(metadata, list):
for page in metadata:
if "ModerationLabels" in page:
for item in page["ModerationLabels"]:
try:
item["Operator"] = "content_moderation"
item["Workflow"] = workflow
if "ModerationLabel" in item:
# flatten the inner ModerationLabel array
item["Name"] = item["ModerationLabel"]["Name"]
item["ParentName"] = ''
if 'ParentName' in item["ModerationLabel"]:
item["ParentName"] = item["ModerationLabel"]["ParentName"]
item["Confidence"] = ''
if 'Confidence' in item["ModerationLabel"]:
item["Confidence"] = item["ModerationLabel"]["Confidence"]
# Delete the flattened array
del item["ModerationLabel"]
extracted_items.append(item)
except KeyError as e:
print("KeyError: " + str(e))
print("Item: " + json.dumps(item))
else:
if "ModerationLabels" in metadata:
for item in metadata["ModerationLabels"]:
try:
item["Operator"] = "content_moderation"
item["Workflow"] = workflow
if "ModerationLabel" in item:
# flatten the inner ModerationLabel array
item["Name"] = item["ModerationLabel"]["Name"]
item["ParentName"] = ''
if 'ParentName' in item["ModerationLabel"]:
item["ParentName"] = item["ModerationLabel"]["ParentName"]
item["Confidence"] = ''
if 'Confidence' in item["ModerationLabel"]:
item["Confidence"] = item["ModerationLabel"]["Confidence"]
# Delete the flattened array
del item["ModerationLabel"]
extracted_items.append(item)
except KeyError as e:
print("KeyError: " + str(e))
print("Item: " + json.dumps(item))
bulk_index(es, asset, "content_moderation", extracted_items)