It is compatible with OpenAI API, is this not enough? And, according to the document, it is confirmed that supports JSON object output. I never ever touched Ruby so I can’t know how Discourse treat response_format
field.
Btw, I tried compatible Authropic API provided by DeepSeek, still unavailable.