ModelResult(
self,
model: BaseChatModel,
model_name: str,
provider: str,
context_limit:Result of creating a chat model, bundling the model with its metadata.
This separates model creation from settings mutation so callers can decide when to commit the metadata to global settings.