**Onderwerpen: #software_testing #tech/ai** Voor het testen mock ik regelmatig json responses via [[Chrome Override - Mocken in Chrome]]. Deze JSONs kunnen eindeloos varieren en ik kan dat zelf wel uitwerken maar dit is precies een taak die je ook heel goed aan AI kan overlaten! Ik ga hier uitleggen hoe ik dat gebruik voor het genereren van testdata. Wil je zien hoe dat er uit ziet? Hier vind je de [GPT](https://chatgpt.com/g/g-67d18946d2188191ba80e9386eb30bb0-voorbeeld-json-data-generator) # Uitgangssituatie: Ik werk in de energie sector en op basis van adres gegevens kunnen de aansluitingen op dat adres opgehaald worden. Een response kan er zo uit zien: ```json [ { "ean": "123491100000078593", "netbeheerder_ean": "5678911900001", "product_type": "GAS", "markt_segment": "KVB", "portaal_energy_meter_id": "G12K", "allocatie": "PRIMAIR" }, { "ean": "123491100000078623", "netbeheerder_ean": "5678911900002", "product_type": "STROOM", "markt_segment": "GVB", "portaal_energy_meter_id": "S45G", "allocation_type": "SECONDAIR" } ] ``` Let op: Dit is een voorbeeld! Er zijn eindeloos variaties mogelijk, meer of minder aansluitingen die op alle waarden anders kunnen zijn. Om dat steeds met de hand aan te passen is foutgevoelig. # Eigen GPT aanmaken Wanneer je een plus account hebt kun je een eigen GPT aanmaken (related: [[ChatGPT - GPT vs Project]]. Dit betekend dat jij een set aan instructies kan geven en als je die specifieke GPT aanspreekt hij zal antwoorden volgens de gegeven instructies. Als je geen Plus account hebt kun je deze instructies aan het begin van elk gesprek meegeven. Wanneer je een GPT aanmaakt krijg je 2 schermen; een waarin je instructies geeft en een waarin je de GPT kan uitproberen. ## Instructies geven Ik vertel je nu welke instructies ik mijn GPT heb gegeven. Je kan dat in gespreksvorm geven of als 1 brok informatie. ### De instructies die ik gegeven heb: Regels per veld: - **`ean`** - Altijd een willekeurige reeks getallen. - Begint altijd met "1234". - Heeft een maximale lengte van **18 cijfers**. - **`netbeheerder_ean`** - Standaardwaarden per producttype: - "5678911900002" voor elektriciteit. - "5678911900001" voor gas. - Kan aangepast worden naar specifieke netbeheerder EANS indien expliciet gevraagd. - Netbeheerder A: - Stroom: 5678911900002 - Gas: 5678911900001 - Netbeheerder B: - Stroom: 5678911900003 - Gas: 5678911900004 - Netbeheerder C: - Stroom: 5678911900005 - Gas: 5678911900006 - **`product_type`** - "STROOM" voor elektriciteit. - "GAS" voor gas. - Geen andere mogelijkheden. - **`markt_segment`** - Standaard: "KVB". - Kan gewijzigd worden naar "GVB" indien expliciet gevraagd. - KVB staat voor Kleinverbruik - GVB staat voor Grootverbruik - **`portaal_energy_meter_id`** - Heeft een waarde van maximaal **4 karakters**. - Opbouw: - Begint met "S" voor elektriciteit of "G" voor gas. - Eindigt met "K" voor **KVB** of "G" voor **GVB** (indien van toepassing). - Bevat een uniek **1- tot 2-cijferig nummer** in het midden. - Voorbeeld waarde: "S87K" - **`allocatie_type`** - `"PRIMAIR"` (standaard). - Kan aangepast worden naar `"SECUNDAIR"` indien expliciet gevraagd. **Randvoorwaarden & Beperkingen** - **Geen extra objecten rondom de JSON-array** - De response moet direct een array `[]` zijn, zonder een wrapper zoals `{ "connections": [...] }`. - **Data is volledig fictief en alleen voor testdoeleinden** - Geen verwijzing naar productiegegevens of C-AR database. - Geen connectie met specifieke bedrijven of systemen. - **Geen specifieke bedrijfsnamen of URL's in de output** - Alle data is generiek en bruikbaar in testomgevingen zonder bedrijfs- of merkgerelateerde koppelingen. ## Probeer je GPT uit > [!warning] Je moet *altijd* het resultaat van GPT's controleren. > Niet alleen je eigen. Zo liep ik er bijvoorbeeld tegen aan dat ik vroeg "*Genereer een JSON met 3 aansluitingen voor gas en stroom*." waarna de GPT mij 3 stroom en 3 gas aansluitingen gaf. "*Deze JSON bevat drie aansluitingen voor elektriciteit en drie voor gas, allemaal met unieke EAN's en correcte identifiers. Wil je nog aanpassingen, zoals een andere netbeheerder of grootverbruik-aansluitingen?*" Ik heb de GPT daarom ook nog de volgende instructie gegeven: "Wanneer je gevraagd word om aansluitingen en er wordt niet gespecificeerd welke soort aansluitingen (stroom of gas) gemaakt moeten worden. Dan mag je willekeurige aansluitingen aanmaken. Voorbeeld: Als gevraagd word om meerdere stroom en gas aansluitingen aan te maken dan moet je minimaal 1 stroom en 1 gas aansluiting aanmaken, de overige mogen random zijn" Dit laat zien dat je soms nog best wel wat moet bijschaven!