5 ms·
Show HN: Using zod to get structured and typed output from ChatGPT in TypeScript
- jbwyme 3y agoNice! I was just minutes ago writing a very similar pattern with zod and GPT. Thanks for validating my approach :)
- teetertater 3y agoCool approach! The only thing I would change or allow customization for is the prompt you're injecting. Most users will probably want to change this: "Output a json object or array generated with random content fitting this schema, based on the PORMPT section below." (sic) My findings from one week of forcing chatgpt to produce structured output: - it prefers a certain kind of format (the one it uses by default when you ask it without json/markdown), and if you deviate too far, it won't listen. E.g. I tried adding underscores to certain words, which it only did half the time. - regex parsing the output is quite robust. Even if it adds sections you don't want like intro or conclusion, the parser will just discard these
- leobg 3y agoTypo in the prompt: > based on the PORMPT
- jondwillis 3y agoI started porting Auto-GPT to NextJS for fun yesterday. The python implementation requires output to be a predictable json schema, so this might be useful in the TypeScript version.
- olup 3y agoAnother idea would be to feed zod's validation errors, if any, to the llm to let it have a second try automatically