### Ablauf 1. Daten und Rästel eingeben - an Management von Benutzer (oder als Subrätsel) ```json { "id" : "xyz", "riddle" : { "context" : "The values of the variables of the following math problem are given in the text document as written numbers.", "question" : "What is x+y?", "solution_before" : "", # if trial > 0 "review_before": "" # if trial > 0 }, "trial" : 0, # did we try this before "steps" : { "extract" : true, "solve" : true, "validate": true, }, "data" : [ { "type" : "text", "file" : "./my-test.txt" }, ... ] } ``` 2. Daten verteilen (`if "extract" : true`) - an alle "🤖 Daten einlesen" vom Management ```json { "id" : "xyz", "data" : [ { "type" : "text", "file" : "./my-test.txt" }, ... ] } ``` 3. Verarbeitete Daten annehmen (`if "extract" : true|false`) - von allen "🤖 Daten einlesen" an Management ```json { "id" : "xyz", "data" : [ { "type" : "text", "file" : "./my-test.txt", "extraction" : "./my-test.json" # schema für alle gleich }, ... ] } ``` 4. Rätsel lösen (`if "solve" : true|false`) - an (alle) "🤖 Lösung bestimmen" von Management ```json { "id" : "xyz", "riddle" : { ... }, "data" : [ { "type" : "text", "file" : "./my-test.txt", "extraction" : "./my-test.json" }, ... ] } ``` - Muss ein "Subrätsel" erzeugen (können), wenn weitere Datenanalyse notwenig ist - Mit einer Submenge der Daten bzw. konkreten Fragen etc. 5. Lösung eines Rätsel annehmen (`if "solve" : true`) - von (alle) "🤖 Lösung bestimmen" an Management ```json { "id" : "xyz", "solution" : "26", "explanation" : "x = 12, y = 14, ...", "sub_riddles" : [ # optional "xyz-1", "xyz-2" ], "used_data" : [ # optional { "type" : "text", "file" : "./my-test.txt", "extraction" : "./my-test.json" }, ... ] } ``` 6. Lösung validieren lassen (`if "validate": true`) - an (alle) "🤖 Lösung validieren" durch Management ```json { "id" : "xyz", "riddle" : { ... } "solution" : "26", "explanation" : "x = 12, y = 14, ...", "sub_riddles" : [ # optional "xyz-1", "xyz-2" ], "used_data" : [ # optional { "type" : "text", "file" : "./my-test.txt", "extraction" : "./my-test.json" }, ... ] } ``` 7. Validierung annehmen (`if "validate": true`) - von (alle) "🤖 Lösung validieren" an Management ```json { "id" : "xyz", "solution" : "26", "explanation" : "x = 12, y = 14, ...", "accept" : false # or true "review" : "y does not match Y" } ``` 8. Ausgabe oder Wiedervorlage - von Management an User oder als neues Riddle - `if "accept" : false`: Neues Riddle mit `trial+1`, `solution_before`, `review_before` - `if "accept" : true`: User bekommt `solution, explanation, review`