Are your categories fixed? If so you could constrain the output using enums in structured outputs.
re: inconsistencies in output, OpenAI provide a seed and system_fingerprint options to (mostly) produce deterministic output.
re: inconsistencies in output, OpenAI provide a seed and system_fingerprint options to (mostly) produce deterministic output.