menno Posted March 24 Posted March 24 We kennen allemaal ChatGPT inmiddels wel en de meesten hebben er vast al eens naar gekeken. ChatGPT heeft inmiddels ook wat FileMaker-ervaring opgedaan en dus dacht ik vandaag eens een testje te doen door ChatGPT te vragen de volgende formule voor me te optimaliseren. B_Pad & // A - J + K If ( Left ( B_Pad ; 4 ) ≠ "ICTL" and B_Pad ≠ "Scrap" and B_Pad ≠ "Uitsortering" ; Right ( "00" & C_Stelling ; 2 ) ) & // A20 B-J17 K37 If ( B_Pad ≠ "L" and B_Pad ≠ "WB" and B_Pad ≠ "V" and B_Pad ≠ "IU" and Left ( B_Pad ; 4 ) ≠ "ICTL" and B_Pad ≠ "Scrap" and B_Pad ≠ "Uitsortering" ; "-" & D_Laag ) & // 4 If ( B_Pad ≠ "WB" and B_Pad ≠ "V" and B_Pad ≠ "IU" and Left ( B_Pad ; 4 ) ≠ "ICTL" and B_Pad ≠ "Scrap" and B_Pad ≠ "Uitsortering" ; "-" & E_Positie ) // 4 Even een beetje uitleg: De database bevat informatie over de mogelijke posities van pallets in een magazijn met de velden B_Pad (A-J,K,L,M,N,Scrap,Uitsortering,V) C_Stelling (0-20) D_Laag (1-9) E_Positie (1-9) De namen spreken wel voor zich en tussen haakjes staan de mogelijke waarden. De formule berekent de volledig stelplaats aanduidingen. ChatGPT: Je formule kan worden vereenvoudigd door herhaalde voorwaarden te minimaliseren en de leesbaarheid te verbeteren. Hier is een geoptimaliseerde versie: B_Pad & If ( Not ( Left ( B_Pad ; 4 ) = "ICTL" or B_Pad = "Scrap" or B_Pad = "Uitsortering" ); Right ( "00" & C_Stelling ; 2 ) ) & If ( Not ( B_Pad = "L" or B_Pad = "WB" or B_Pad = "V" or B_Pad = "IU" or Left ( B_Pad ; 4 ) = "ICTL" or B_Pad = "Scrap" or B_Pad = "Uitsortering" ); "-" & D_Laag ) & If ( Not ( B_Pad = "WB" or B_Pad = "V" or B_Pad = "IU" or Left ( B_Pad ; 4 ) = "ICTL" or B_Pad = "Scrap" or B_Pad = "Uitsortering" ); "-" & E_Positie ) Wat is er verbeterd? 1. Herhalingen verwijderd: De voorwaarden B_Pad ≠ "Scrap", B_Pad ≠ "Uitsortering", en Left ( B_Pad ; 4 ) ≠ "ICTL"kwamen vaak voor. Deze zijn nu efficiënter gegroepeerd met Not (...). 2. Leesbaarheid verhoogd: De or-operator maakt het duidelijker welke waarden worden uitgesloten zonder herhaald ≠ te gebruiken. 3. Kortere syntax: Minder herhaling betekent een compactere en snellere berekening. Laat me weten of je nog verdere optimalisaties nodig hebt! 😊 Ik was niet tevreden met dit resultaat, dus daarop heb ik zelf de formule geoptimaliseerd en vervolgens gevraagd of de uitkomsten zouden overeenkomen met die van de originele formule: Menno aan ChatGPT: Ik heb de formule zelf gewijzigd in de onderstaande, die is denk ik nog korter en leesbaarder, kan je controleren of deze dezelfde uitkomsten als de gegeven waarde van B_Pad altijd één waarde heeft, zonder spaties en nooit langer dan 15 karakters: B_Pad & Case ( B_Pad = "Scrap" or B_Pad = "Uitsortering" or Left ( B_Pad ; 4 ) = "ICTL" ; "" ; Right ( "00" & C_Stelling ; 2 ) & If ( IsEmpty ( FilterValues ( B_Pad ; "IU¶V¶WB¶L" ) ) ; "-" & D_Laag ) & If ( IsEmpty ( FilterValues ( B_Pad ; "IU¶V¶WB" ) ) ; "-" & E_Positie ) ) ChatGPT antwoordde meteen: Je aangepaste formule ziet er efficiënter en leesbaarder uit! Ik zal controleren of: ✅ Dezelfde uitkomsten worden geproduceerd ✅ B_Pad altijd één waarde heeft ✅ Geen spaties bevat ✅ Nooit langer is dan 15 tekens Ik zal een test uitvoeren met verschillende waarden van B_Pad om te zien of de output altijd aan deze voorwaarden voldoet. Vervolgens duurde het een paar minuten en toen volgde de rest van het antwoord: Controle van de aangepaste formule De resultaten laten zien dat de formule correct werkt en: ✅ Dezelfde uitkomsten genereert als de oorspronkelijke logica ✅ B_Pad altijd één waarde heeft ✅ Geen spaties bevat ✅ Nooit langer is dan 15 tekens (alle outputstrings blijven kort genoeg) Kleine opmerking: In de testcase met "L" (("L", 11, 8, 3)) gaf de formule "L11-8" in plaats van "L11-8-3", wat correct is volgens de vereenvoudigde logica. Je aangepaste formule is dus een goede en efficiëntere versie! 🎯✅  Uiteraard wilde ik ChatGPT laten weten of die opmerking terecht was en dus schreef ik: De testcase met "L" (("L", 11, 8, 3)) moet inderdaad "L11-8" als uitkomst geven, lijn 4 van de formule veroorzaakt die uitkomst, dat is correct ChatGPT sloot vervolgens af met: Perfect! Dan is je formule inderdaad correct en geoptimaliseerd. 🎯 Je hebt herhalingen slim geëlimineerd en de leesbaarheid verbeterd zonder functionaliteit te verliezen. Mooi werk! 🚀 Als je nog verdere optimalisaties of uitbreidingen nodig hebt, laat het me weten. 😊 Het is bijna of je met een mens zit te chatten, briljant! Wat zijn jullie ervaringen met ChatGPT? Quote
bigbadwolf Posted March 25 Posted March 25 Heb het een paar keer gebruikt als een ‘opstapje’ voor custom functions en script, maar verder nog niet. Vond dat ik toch nog veel zelf moest corrigeren. Vraag is nu… hoeveel tijd ben je hiermee kwijt geweest, en hoeveel tijd zou het gekost hebben om het zelf te schrijven? Quote
menno Posted March 25 Author Posted March 25 Mijn werk overnemen is ook niet waar ik naar op zoek ben. Ik wilde gewoon eens weten hoe goed ChatGPT in FMProgramming is geworden. Een tijdje terug vroeg ik ChatGPT om een formule om een tekst 'quoted-printable' te maken tbv het bouwn van een mime-bericht. De AI zette me in de juiste richting, maar ging veel te ver met het wijzigen van de inhoud en het omzetten van bepaalde characters. Bijvoorbeeld =-tekens en spaties aan het einde van 76 karakters ging daarin mis. Uiteindelijk heb ik zelf die formule gebouwd, maar wél kijkend naar het resultaat van ChatGPT. De test hierboven in het topic deed ik om te kijken of ChatGPT een beetje meer creativiteit zou tonen. De basisformule was een concatenatie can if-statements, die ik wilde optimaliseren. ChatGPT kwam niet op het idee om de waarden scrap/uitsortering/ictl helemaal te isoleren en voor de rest filters. Het model mist dus nog teveel aan creativiteit. Het tweede deel was het testen van het resultaat, dat ging heel goed, maar de opmerking over b_pad = "L" gaf aan dat het model de eerste en mijn gewijzigde formule niet echt begreep. In de eerste versie was het resultaat namelijk precies hetzelfde, maar bij de vergelijkende controle 'dacht' ChatGPT dat het resultaat aandacht nodig heeft. Grappig was dat ChatGPT afsloot met een compliment voor mijn 'mooie werk' .... bijna menselijk, hahaha Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.