in main.py [0:0]
def get_constraints(bot_definition):
distinct_slot_values = bot_definition['distinct_slot_values']
closed_type_constraints = []
for slot_var in distinct_slot_values:
the_constraint = {'name': f"closedType_{slot_var}",
"isGlobal": True,
"slots": [slot_var],
"disjunctions": [
[{
"slotVariable": slot_var,
"operator": "IN",
"values": distinct_slot_values[slot_var]
}]
]}
closed_type_constraints.append(the_constraint)
# Mapping from intents to constraints
## Initialization
all_constraints = bot_definition["constraints"] + closed_type_constraints
constraints_for_intent = {i:[] for i in bot_definition['main_intents']}
## Map constraints to intents
for i in bot_definition["main_intents"]:
for constraint in all_constraints:
if constraint['isGlobal'] or i in constraint['intents']:
constraints_for_intent[i].append(constraint)
return all_constraints, constraints_for_intent