Подборка объединяет вопросы, отмеченные на этапах интервью в Сбер. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, sql, backend.
Выбор Redis для очереди можно обосновать простотой, имеющейся инфраструктурой и приемлемыми гарантиями. Но сравнивать нужно конкретный механизм очереди, а не только названия Redis, Kafka и RabbitMQ.
Объясните, какие задачи дают вам наибольшую мотивацию и где сильнее опыт: исследования и модели, инженерия или их сочетание. Не обязательно выбирать жёстко, если роль смешанная.
Модель предлагает имя инструмента и аргументы, а приложение проверяет и выполняет вызов. Результат возвращается в контекст, после чего агент отвечает или запрашивает следующий шаг.
LoRA оставляет основные веса модели замороженными и обучает небольшие низкоранговые добавки к выбранным матрицам. Это уменьшает число обучаемых параметров и затраты на хранение адаптации.
Redis не обязательно неперсистентный: у него есть RDB и AOF. Если сохранение отключено и уведомления существуют только в памяти этого экземпляра, после перезапуска они могут быть потеряны.
Разделите приём событий, выбор получателей/каналов, шаблоны и доставку. Запрос бизнеса фиксируется надёжно, а отправка выполняется асинхронно через очереди и адаптеры провайдеров.
Назначайте уведомлению стабильный ключ по бизнес-событию, получателю, каналу и типу сообщения. Уникальное ограничение и сохранённое состояние доставки защищают от повторной обработки.
В графе workflow Conditional Edge — условный переход, выбирающий следующий узел по текущему состоянию или результату шага. В LangGraph это позволяет делать ветвления, циклы и завершение.
При стандартном REQUIRED оба метода участвуют в одной транзакции. RuntimeException из doB помечает её rollback-only, даже если doA перехватил исключение.
Направление addAll перепутано: добавлять нужно в first, который потребляет T, из second, который производит T. Исходный вызов обычно не компилируется из-за wildcard capture.
Вычислите максимальную зарплату для каждого department_id и выберите всех сотрудников с этим значением. При равенстве максимума должны остаться несколько работников.
В исправленном синтаксически фрагменте contains(person) должен вернуть true: тот же неизменённый объект только что добавлен в HashSet. Показанный код сам по себе не объясняет false.