Перейти к содержимому

Разработка AI-агента на Python для автоматизации поиска работы. Часть 1

CodeUA

0:00 / 0:00

Разработка AI-агента на Python для автоматизации поиска работы. Часть 1

3 294 просмотра · Трансляция закончилась 3 месяца назад
CodeUA
31,4 тыс. подписчиков
3 294 просмотра · Трансляция закончилась 3 месяца назад
Это первая часть воркшопа с Константином Зивенко, на котором мы вместе создадим умного помощника, автоматизирующего рутину по поиску работы. Продолжение следует 2 июля. Что сделает ваш AI-агент к концу воркшопа: Проанализирует ваше резюме и пожелания по будущей работе (зарплата, стек, формат). Соберет актуальные вакансии с job-сайтов. Сопоставит требования компаний с вашим опытом и отфильтрует самые лучшие варианты. – спросит детали: если в описании вакансии мало данных для принятия решения, агент сам напишет письмо работодателю с уточнениями. Отправьте отзыв: для идеальных вакансий сформирует и отправит мотивационное письмо вместе с вашим CV, а также предложит удобное время для созвона. Поработает с календарем: получив ответ с предложением интервью, агент сверит его с вашим графиком, подтвердит встречу или предложит другой слот, если вы заняты. Главная цель воркшопа: Познакомьтесь с основами создания AI-агентов на базе генеративных сетей. Технологический стек и инструменты Работаем локально, без лишнего усложнения архитектуры, чтобы фокусироваться на коде: Язык: Python LLM Core: Модели семейства Gemini (через официальный SDK Gemini) Валидация данных: библиотека instructor (для получения структурированных JSON-ответов от ИИ) Сеть: httpx + вспомогательные Python-библиотеки Среда: PyCharm / Jupyter Notebook Кому подойдет этот воркшоп? Вебинар рассчитан на начинающих, желающих перейти от теории AI к настоящей практике. Минимальные требования к участникам: знание базового синтаксиса Python и поверхностное понимание ООП. понимание, что такое HTTP-запрос и формат JSON. Установленный PyCharm или VSCode. Ментор: Константин Зивенко - Lead Software Engineer, 7 лет в коммерческой разработке. Web, AI, ML, DevOps, база данных. Сильные стороны: алгоритмы и математика, архитектурные решения, прямой диалог с заказчиком, организация процесса работы над проектами групп разработчиков. 00:00:00 Приветствие и анонс темы вебинара 00:01:10 Ограничение вебинара из-за разного уровня подготовки слушателей 00:03:00 Обзор архитектуры будущего приложения (Ports and Adapters / Hexagonal) 00:04:40 Почему в проекте принципиально не используются LangChain и LangGraph 00:05:50 Демонстрация исходного состояния проекта в Jupyter Notebook 00:09:00 Несколько слов об авторе и его коммерческом опыте 00:11:15 Концепция работы AI-агента для автоматизации поиска работы 00:16:10 Шаг 1. Загрузка резюме (PDF) и превращение его в текст 00:16:50 Важность санитайзинга (очистки) текста для экономии токенов 00:17:25 Подробный обзор архитектуры по методологии C4 (Level 1, Level 2) 00:18:05 Что такое гексагональная архитектура (Ports & Adapters) на практике 00:18:40 Работа с моделями и универсальный парсер данных 00:19:05 Настройка линейки LLM-моделей и построение цепи фолбеков 00:20:43 Демонстрация парсинга резюме и разбиение текста по полям 00:21:55 Сбор и структурирование пожеланий соискателя работы 00:23:00 Начало работы с источником вакансий (DOU) и создание первого коннектора 00:24:40 Проблемы и хрупкость классического парсинга по HTML-селекторам 00:28:05 Парсинг 2.0: Использование LLM для извлечения структурированных данных 00:30:15 Сочетание ИИ и классических алгоритмических методов фильтрации (стоп-слова) 00:31:40 Алгоритмическая проверка полноты данных в вакансиях 00:32:45 Процесс матчинга и оценка (скоринг) вакансий с помощью более дорогих моделей 00:34:00 Работа с квотами бесплатных тарифов LLM и обработка ошибок 00:38:00 Обзор структуры сохранения состояния разговора (State JSON) 00:39:20 Анонс второго дня вебинара: действия агента, работа с почтой и отзывами 00:41:40 Специфика автоматической отправки отзывов на DOU через сессии и CSRF 00:44:55 Хранение и управление состояниями асинхронных событий 00:48:40 Что такое RAG (Retrieval-Augmented Generation) и почему он не нужен в этой задаче 00:51:35 Связь AI-агента с Google Календарем для назначения собеседований 00:54:00 Обзор начальной структуры папок проекта (Core, Connectors, Helpers) 00:56:30 Настройка переменных окружения (.env) и подключение сессий для DOU 00:59:05 Обзор основных библиотек и зависимостей проекта (Pydantic, PDF-reader, Instructor) 01:02:40 Практическая реализация сбора текста с PDF-документов с помощью Python 01:06:12 Глубокий разбор кода ядра (Core) и построение моделей Pydantic 01:13:50 Что такое Pydantic-модели и как работает валидация данных 01:17:35 Создание портов с помощью протоколов (Typing Protocol) в Python 01:25:55 Подключение библиотеки Instructor для автоматического устранения ошибок LLM 01:35:30 Наглядное создание новых API-ключей в Google AI Studio и решение проблем с лимитами 01:39:40 Создание адаптера для сбора вакансий с помощью Beautiful Soup 01:43:10 Написание универсальной функции экстракции для любых типов документов 01:52:00 Локальные LLM модели: требования к железу и целесообразность использования 01:54:20 Завершение первой части, итоги и организационные вопросы