We propose a DSL to facilitate the configuration and automate the execution of the ToT framework based on the task decomposition required for a modeling process. The modeling process is divided by tasks, as shown in the following example:
task:
level: 1
name: "Classes"
description: "A class represents objects that share a common structure and behavior."
assessments:
"Classes are retrieved from nouns in the domain description."
"The principal concepts of the domain are represented in classes."
task:
level: 2
name: "Association"
description: "Associate is used when a class is related to another."
assessments:
"Associations and cardinalities are included in the model."
Request OpenAI or Azure keys to have access to the LLM API. Instructions are in the following links:
Create the .env file with the variables indicated in this file:
- Install Python 3.11 and create a virtual environment
- Install the required packages:
pip install -r requirements.txt
- Create your model, see the how-to section.
- Run the application with your model:
python run.py --model ER_3lev.dmtot #Replace by your model name
- A log will capture all the thoughts created by the LLM for the task decomposition configured.
The DSL is created with TextX, and the concrete syntax follows a grammar with a structured format where a Model is composed of a Tree, a Problem, multiple Tasks, and a Notation.
Examples of Entity Relationships diagram, UML class diagram, UML activity diagram, and BPMN workflow diagram are located here.
The results of the experiments include the reference models and the output from the experiments. To run the experiments, use the input data with the domain descriptions and models. Then execute the experiment:
python run.py --model exercise2_asocclass_5lev.dmtot