Optimizing AI Performance: Routing Requests to the Best Language Model