Both #2787 and #2863 would benefit from having a Model Capability class that describes what functionality the model supports.
For the case of the reasoning models, this capability would enable one to copy the current systemMessage into a 'developerMessage' (as required by the o series of openai models) and for structured output one can switch to use the JSON mode vs. the current strategy of adding to the prompt the 'please convert my json` message.
There is a wide range of features that fall under this umbrella, so a good design is need. Multimodality is another one, we can proactively know that a request with Media would not be supported by a given model.
Both #2787 and #2863 would benefit from having a Model Capability class that describes what functionality the model supports.
For the case of the reasoning models, this capability would enable one to copy the current systemMessage into a 'developerMessage' (as required by the
oseries of openai models) and for structured output one can switch to use the JSON mode vs. the current strategy of adding to the prompt the 'please convert my json` message.There is a wide range of features that fall under this umbrella, so a good design is need. Multimodality is another one, we can proactively know that a request with Media would not be supported by a given model.