JustCaptain kod-buduschego
50dfea9f36e507ca9ff84a286d3a53bb4b714a7c
Перейти к файлу
Код
TASKS.md

Задача 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},
]