| ▲ | sebstefan 8 months ago | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
I only use the one model that I'm provided for free at work. I expect that's most users behavior. They stick to the one they pay for. Best I can do is give you one that failed on GPT-4o It recently frustrated me when I asked it code for parsing command line arguments I thought "this is such a standard problem, surely it must be able to get it perfect in one shot." > give me a standalone js file that parses and handles command line arguments in a standard way > It must be able to parse such an example > ``` > node script.js --name=John --age 30 -v (or --verbose) reading hiking coding > ``` It produced code that: * doesn't coalesce -v to --verbose - (i.e., the output is different for `node script.js -v` and `node script.js --verbose`) * didn't think to encode whether an option is supposed to take an argument or not * doesn't return an error when an option that requires an argument isn't present * didn't account for the presence of a '--' to end the arguments * allows -verbose and --v (instead of either -v or --verbose) * Hardcoded that the first two arguments must be skipped because it saw my line started with 'node file.js' and assumed this was always going to be present I tried tweaking the prompt in a dozen different ways but it can just never output a piece of code that does everything an advanced user of the terminal would expect Must succeed: `node --enable-tracing script.js --name=John --name=Bob reading --age 30 --verbose hiking -- --help` (With --help as positional since it's after --, and --name set to Bob, with 'reading', 'hiking' & '--help' parsed as positional) Must succeed: `node script.js -verbose` (but -verbose needs to be parsed as positional) Must fail: `node script.js --name` (--name expects an argument) Should fail: `node script.js --verbose=John` (--verbose doesn't expect an argument) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | alex_duf 8 months ago | parent [-] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Have you tried claude? https://claude.ai/public/artifacts/9c2d8d0c-0410-4971-a19a-f... node script.js --name=John --age 30 -v Parsed options: { name: 'John', age: 30, verbose: true, help: false } Positional arguments: [] node script.js --name=Alex --age 40 -v Parsed options: { name: 'Alex', age: 40, verbose: true, help: false } Positional arguments: [] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||