# Software Design ## Idea `Dami` - Data Minesation > Incentived Synthetic Data Generation ### Problem Creating good datasets is hard. <details> <summary>Read More</summary> We bet that to train our next iteration of LLM's further we need synthecial Datasets, because Internet Data is big but even that is limited. </details> ### Solution `Dami` - Data Minesation <details> <summary>Read more</summary> There is a ne tool which allows judging how good the dataset is. Especially for LLM's. We use that to judge the Dataset and via web3 primitives we create a nice incentives system, which gives the AI's a nice Frame to improve theirself to generate even better data. </details> ## Requirments ### Functional Requirments - Ai nodes should get money - Ai nodes should improve theirself - Ai nodes should generate Data - Data genration should be judges automatically - The user should have be able to get Data ### Non Functional Requirments - Simple to use ## Story - As AiNode Provider I want money for run my service - As AiNode Provider I want to improve my neural nets - As Valdator I want to judge the output - As a User I want I want to have great Dataset ## Diagrams ### Use Case ```plantuml left to right direction actor AiNode actor Validator actor User AiNode -- (get money) AiNode -- (improve) Validator -- (judge) User -- (get data) ``` ### Class Diagram ```plantuml class Optico { +owner: Address +nodes: Address[] +validator: Address +task: Map<Int,String> .. Ai Node Handling.. +ai_register() +ai_unregister() +get_task() +get_rewarded() +send_result(id: int) .. Validator Handling .. +validator_register() +validator_unregister() +judge() .. User Handling .. +add_task() +get_results() } ``` ### Sequence Diagramm ```plantuml actor User entity WebApp database SmartContract entity AiNode entity Validator group "Register" AiNode --> SmartContract: "register" Validator --> SmartContract: "register" end group "User Interaction" User --> WebApp: "gives task" WebApp --> SmartContract: "add_task" end group "Task doing" AiNode --> SmartContract: "give me Task" SmartContract --> AiNode: "sends Task" AiNode --> AiNode: "does Task" AiNode --> SmartContract: "sends result" end group "Judging" Validator --> SmartContract: "give me results" Validator --> Validator: "judging" Validator --> SmartContract: "sends judging" end group "Payout" AiNode --> SmartContract: "give me money" SmartContract --> AiNode: "sends money" end ```