 consistent interface for ineracting with different models. <em>Also</em>, the run() method is expected ro return a dictionary in OpenAI's response format <strong>regardless</strong> of the underlying model backend.</p>
</li>
<li>
<p>Creates another ABC called <code>ModelFactory</code>: This is a <strong>factory class</strong> (a class that decides what class to use and then creates an instance of it for you) that picks the right model and initializes the relevant backend. </p>
</li>
</ul>
<p>A factory clas