from dataclasses import dataclass
@dataclass
class Request:
user: str
model: str
requests_dict = [
{"user": "alex", "model": "gpt-5"},
{"user": "kate", "model": "claude"},
{"user": "bob", "model": "gpt-5"},
{"user": "max", "model": "gemini"},
{"user": "anna", "model": "gpt-5"},
{"user": "ivan", "model": "claude"},
{"user": "alex", "model": "gpt-5"},
{"user": "kate", "model": "gemini"},
{"user": "bob", "model": "gpt-5"},
{"user": "max", "model": "claude"},
{"user": "anna", "model": "claude"},
{"user": "ivan", "model": "gpt-5"},
{"user": "alex", "model": "gpt-5"},
{"user": "kate", "model": "gpt-5"},
{"user": "bob", "model": "gemini"},
]
def create_data(requests_dict: list[dict]) -> list[Request]:
result: list[Request] = []
for req in requests_dict:
if req.get("user") and req.get("model"):
request = Request(user=req["user"], model=req["model"])
result.append(request)
return result
def most_popular_model(requests: list[Request]) -> str:
data: dict[str, int] = {}
for request in requests:
if data.get(request.model) is None:
data[request.model] = 1
else:
data[request.model] += 1
model_name: str = ""
model_count: int = 0
for model, count in data.items():
if count > model_count:
model_name = model
model_count = count
return model_name
requests = create_data(requests_dict=requests_dict)
print(most_popular_model(requests=requests))