Skip to content

Commit

Permalink
Merging Decision Tree from J&V into AI-act decision tree (#41)
Browse files Browse the repository at this point in the history
  • Loading branch information
laurensWe authored Jul 29, 2024
2 parents a5827f6 + 263362e commit 53a6ef4
Show file tree
Hide file tree
Showing 3 changed files with 1,054 additions and 467 deletions.
60 changes: 43 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,70 @@
# AI-act-beslisboom

Deze git repository bevat de beslisboom op basis van de AI Act. Het project omvat 3 onderdelen.
Deze git repository bevat de beslisboom op basis van de AI Verordening. Het project omvat 3 onderdelen.

1. De beslisboom: [decision-tree.yaml](decision-tree.yaml)
2. Een frontend voor de visualisatie van de beslisboom: [frontend](frontend/)
3. Kubernetes deployment code: [infra](infra/)

## Beslisboom
Door deze beslisboom te doorlopen, krijgt uw organisatie inzicht in de volgende vragen:

- Is er sprake van een **AI-systeem** , een **AI-systeem voor algemene doeleinden** of een **AI-model voor algemene doeleinden**?
- Is het systeem/model **open source** of niet?
- Is de AI-verordening van toepassing? Is er sprake van een **uitzonderingsgrond**?
- Binnen welke **risicocategorie** valt het AI-systeem?
- Is er sprake van een **systeemrisico** of **transparantierisico**?
- Bent u een **aanbieder** of een **gebruiksverantwoordelijke** van het AI-systeem?
- Aan welke **verplichtingen** moet u voldoen bij de inzet van het AI-systeem?

Om u te helpen bij het beantwoorden van de vragen, zijn relevante overwegingen / artikelen / bijlagen van de AI Verordening gelinkt per vraag.

## Beslisboom componenten

De beslisboom is gevat in [decision-tree.yaml](decision-tree.yaml). U kunt deze bekijken met elke editor die u fijn vindt.

De beslisboom heeft componenten die vast gelegdt zijn in een schema. Zie [schema](schemas/base.schema.json). Dit schema zorgt ervoor dat software/systemen weet welke velden verwacht worden.
De beslisboom heeft componenten die vastgelegd zijn in een schema. Zie [schema](schemas/base.schema.json). Dit schema zorgt ervoor dat het systeem weet welke velden verwacht worden.

De beslisboom is opgebouwd uit de volgende componenten:

```sh
version: string # versie van decisionTree
name: string # Naam van decisionTree
name: string # naam van decisionTree
questions: array(Question) # de vragen zoals gedefineerd hieronder

Question: # Definitie van 1 vraag
Question: # definitie van 1 vraag
questionId: string # een unique identifier voor de vraag
question: string # De vraag die gesteld wordt
question: string # de vraag die gesteld wordt
questionType: enum # het type vraag
answers: array(Answer) # De mogelijke antwoorden zoals hieronder gedefineerd
description: string # optioneel: een extra opmerking bij de vraag
source: string # optioneel: een verwijzing, naar bijvoorbeeld een wetsartikel
source_url: string # optioneel: een link naar de bovengenoemde verwijzing
answers: array(Answer) # de mogelijke antwoorden zoals hieronder gedefineerd

Answer: # definitie van 1 antwoord
answer: string # de text van het antwoord
nextQuestionId: string # optioneel de QuestionId van de volgende vraag
result: string # optioneel de eind conclusie
answerComment: string # optioneel extra commentaar bij het antwoord
nextQuestionId: string # optioneel: de QuestionId van de volgende vraag
subresult: string # optioneel: een tussenresultaat voordat naar de volgende vraag verwezen wordt
labels: array # optioneel: labels toegekend aan het bijbehorende tussenresultaat
result: string # optioneel: het eindresultaat
answerComment: string # optioneel: extra commentaar bij het antwoord

Conclusion: # definitie van 1 eindconclusie
conslusion: string # de eindconclusie
conclusionComment: string #optioneel: een extra opmerking bij de conclusie
obligation: string # de bij de conclusie bebehorende verplichtingen uit de AI verordening
source: string # optioneel: een verwijzing, naar bijvoorbeeld een wetsartikel
source_url: string # optioneel: een link naar de bovengenoemde verwijzing
```

## frontend
## Frontend

Om door de beslisboom te lopen hebben we een visualizatie tool gemaakt. Met deze tool kan je door de vragen lopen. De frontend is beschikbaar op deze [website](https://ai-act-decisiontree.apps.digilab.network). Voor nu heeft men nog een wachtwoord nodig om de website te bekijken. Deze kan je opvragen bij ruth.
Om door de beslisboom te lopen is een visualizatie tool gemaakt. Met deze tool kunt u door de vragen lopen. De frontend is beschikbaar op deze [website](https://ai-act-decisiontree.apps.digilab.network). Voor nu is er nog een wachtwoord nodig om de website te bekijken. Deze kan bij Ruth worden opgevraagd.

### frontend locaal draaien
### Frontend locaal draaien

Om de development omgeving te standariseren maken we gebruik van [devcontainers](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started).

Als men in de devcontainer zit kan met de volgende commandos uitvoeren. voordat dit kan gaat u eerst in de frontend/ folder staan met een terminal.
Als u in de devcontainer zit kunt u de volgende commandos uitvoeren. Voordat dit kan gaat u eerst in de frontend/ folder staan met een terminal.

Start de tool:

Expand Down Expand Up @@ -70,15 +94,17 @@ Nu is de website beschikbaar op deze locale [site](http://localhost:9090)

## Infra

Er is een klein stukje infra code geschreven voor kubernetes zodat de applicaties gehost kan worden. Om dit uit te kunnen voeren heeft u een kubernetes cluster nodig en [kubectl](https://kubernetes.io/docs/tasks/tools/). Dit inatellen laten we buiten beschouwing voor deze readme. Als men het ingesteld heeft kan met het volgende commande uitvoeren.
Er is een klein stukje infra code geschreven voor kubernetes zodat de applicaties gehost kan worden. Om dit uit te kunnen voeren heeft u een kubernetes cluster nodig en [kubectl](https://kubernetes.io/docs/tasks/tools/). Dit inatellen laten we buiten beschouwing voor deze readme. Als men het ingesteld heeft kan met het volgende commando uitvoeren.

```sh
kubectl apply -k infra/
```


## Validate schema of YAML
## Validatie schema

Door het volgende script te runnen, kunt u controlen of het bestand decision-tree.yaml (technisch) valide is. Eventuele (syntax)fouten worden hiermee aangegeven.

```sh
./scripts/validate --schema_file schemas/base.schema.json --yaml_file tests/sample-decision-tree-complex.yaml
./scripts/validate --schema_file schemas/base.schema.json --yaml_file decision-tree.yaml
```
Loading

0 comments on commit 53a6ef4

Please sign in to comment.