Задача 1. Самая популярная AI-модель
Напиши функцию:
def most_popular_model(requests):
pass
Найти модель, которая использовалась чаще всего.
Входные данные
requests = [
{"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"},
]
⸻
Задача 2. Найти клиента с максимальным расходом токенов
def top_user(requests):
pass
Входные данные
requests = [
{"user": "alex", "tokens": 2500},
{"user": "kate", "tokens": 1800},
{"user": "bob", "tokens": 4000},
{"user": "alex", "tokens": 1200},
{"user": "kate", "tokens": 700},
{"user": "bob", "tokens": 3500},
{"user": "anna", "tokens": 2200},
{"user": "ivan", "tokens": 900},
{"user": "anna", "tokens": 3100},
{"user": "alex", "tokens": 2800},
{"user": "ivan", "tokens": 1500},
{"user": "kate", "tokens": 2600},
]
⸻
Задача 3. Отфильтровать дорогие запросы
def expensive_requests(requests, limit):
pass
Вернуть только запросы, где токенов больше 3000.
Входные данные
requests = [
{"id": 1, "tokens": 1200},
{"id": 2, "tokens": 4500},
{"id": 3, "tokens": 800},
{"id": 4, "tokens": 6700},
{"id": 5, "tokens": 2100},
{"id": 6, "tokens": 9100},
{"id": 7, "tokens": 3300},
{"id": 8, "tokens": 2900},
{"id": 9, "tokens": 5000},
{"id": 10, "tokens": 1500},
]
⸻
Задача 4. Построить статистику пользователей
def user_statistics(requests):
pass
Вернуть словарь:
{
"alex": 7000,
"kate": 5100
}
Входные данные
requests = [
{"user": "alex", "tokens": 1000},
{"user": "kate", "tokens": 2000},
{"user": "alex", "tokens": 3000},
{"user": "bob", "tokens": 1500},
{"user": "kate", "tokens": 2500},
{"user": "alex", "tokens": 1200},
{"user": "anna", "tokens": 1700},
{"user": "bob", "tokens": 800},
{"user": "ivan", "tokens": 900},
{"user": "anna", "tokens": 2200},
]
⸻
Задача 5. Найти пользователей, превысивших лимит
def exceeded_users(requests, limit):
pass
Лимит:
10000
Входные данные
requests = [
{"user": "alex", "tokens": 4000},
{"user": "alex", "tokens": 3500},
{"user": "alex", "tokens": 5000},
{"user": "kate", "tokens": 2000},
{"user": "kate", "tokens": 3000},
{"user": "bob", "tokens": 7000},
{"user": "bob", "tokens": 1500},
{"user": "anna", "tokens": 9000},
{"user": "anna", "tokens": 2500},
]
⸻
Задача 6. Посчитать выручку компании
def calculate_revenue(requests, price_per_1000):
pass
Цена:
price_per_1000 = 0.04
Входные данные
requests = [
{"tokens": 2000},
{"tokens": 3500},
{"tokens": 1800},
{"tokens": 5000},
{"tokens": 700},
{"tokens": 1200},
{"tokens": 9000},
{"tokens": 2500},
{"tokens": 3200},
{"tokens": 1500},
]
⸻
Задача 7. Найти неактивных клиентов
def inactive_users(users):
pass
Клиент считается неактивным, если сделал меньше 5 запросов.
Входные данные
users = [
{"user": "alex", "requests": 12},
{"user": "kate", "requests": 3},
{"user": "bob", "requests": 1},
{"user": "anna", "requests": 7},
{"user": "ivan", "requests": 4},
{"user": "max", "requests": 9},
{"user": "john", "requests": 2},
{"user": "eva", "requests": 14},
]
⸻
Задача 8. Собрать отчёт по моделям
def model_report(requests):
pass
Вернуть:
{
"gpt-5": {
"requests": ...,
"tokens": ...
}
}
Входные данные
requests = [
{"model": "gpt-5", "tokens": 1200},
{"model": "claude", "tokens": 1800},
{"model": "gpt-5", "tokens": 2200},
{"model": "gemini", "tokens": 900},
{"model": "claude", "tokens": 3000},
{"model": "gpt-5", "tokens": 1700},
{"model": "gemini", "tokens": 2500},
{"model": "claude", "tokens": 800},
{"model": "gpt-5", "tokens": 5000},
{"model": "gemini", "tokens": 1300},
]
⸻
Задача 9. Найти самый загруженный день
def busiest_day(logs):
pass
Входные данные
logs = [
{"date": "2025-05-01", "tokens": 15000},
{"date": "2025-05-02", "tokens": 23000},
{"date": "2025-05-03", "tokens": 18000},
{"date": "2025-05-04", "tokens": 35000},
{"date": "2025-05-05", "tokens": 12000},
{"date": "2025-05-06", "tokens": 41000},
{"date": "2025-05-07", "tokens": 22000},
]
⸻
Задача 10. Найти подозрительные запросы
def suspicious_requests(requests):
pass
Подозрительным считается запрос:
- больше 10000 токенов;
- либо время ответа меньше 10 мс.
Входные данные
requests = [
{"id": 1, "tokens": 1200, "latency": 100},
{"id": 2, "tokens": 15000, "latency": 300},
{"id": 3, "tokens": 900, "latency": 5},
{"id": 4, "tokens": 5000, "latency": 120},
{"id": 5, "tokens": 18000, "latency": 8},
{"id": 6, "tokens": 700, "latency": 90},
{"id": 7, "tokens": 11000, "latency": 150},
{"id": 8, "tokens": 1300, "latency": 6},
]