rasa_creator / app.py
shikata4622's picture
Update app.py
2031b4c verified
# Function to update the Domain file with new intents and responses
def update_domain_file(intent_name, domain_file_path="domain.yml"):
# Create the 'data' directory if it doesn't exist
if not os.path.exists("data"):
os.makedirs("data")
# If the Domain file doesn't exist, create it with a default structure
if os.path.exists(domain_file_path):
with open(domain_file_path, "r") as file:
domain_data = yaml.safe_load(file)
# If domain_data is None, initialize it with a default structure
if domain_data is None:
domain_data = {"intents": [], "responses": {}}
else:
domain_data = {"intents": [], "responses": {}}
# Add the new intent to the domain
if intent_name not in domain_data["intents"]:
domain_data["intents"].append(intent_name)
# Add a new response if the intent doesn't already have a response
if f"utter_{intent_name}" not in domain_data["responses"]:
domain_data["responses"][f"utter_{intent_name}"] = [
{"text": f"Response for {intent_name}"}
]
# Write back the updated Domain file
with open(domain_file_path, "w") as file:
yaml.dump(domain_data, file)
return f"Domain file updated with intent: {intent_name}"