I see your point, and I agree that your proposal is feasible. However, there is one limitation to consider: the current loading mechanism first discovers all available factories on the classpath and then filters them based on the user-specified identifiers.
In most practical scenarios, we would likely have only one generic factory (e.g., a GenericPythonModelFactory) present in the classpath. This means the framework would be able to load either PyTorch or TensorFlow models—whichever is defined within that single generic implementation—but not both simultaneously unless additional mechanisms are introduced. This doesn't block the proposal, but it’s something worth noting as we design the extensibility model. We may want to explore ways to support multiple user-defined providers more seamlessly in the future. Best, Shengkai
