A model provider is a declared resource, not a dependency.
In projects using AI, the choice of model provider changes more often than anything else: prices change, performance on specific tasks changes, regulatory constraints change, and sometimes the organisation's position on where data may travel changes.
So the model is treated as a declared resource, replaceable per call, not as a library embedded in the application. Replacing it is a configuration change, not a rewrite of the automation, and different projects for the same client can use different providers depending on the sensitivity of the data they handle.
The same category includes the option of models hosted within a perimeter you control, which is the choice for anyone with strict confidentiality constraints who accepts the trade-off in model capability.