L3 Открытый урок · Стажёр
Уровень L3: проекты PRJ-03, PRJ-04 и экзамен
Итог уровня L3: извлечение полей из документов, семантический поиск с eval, критерии приёмки и формат трёхчасового экзамена.
- Объём
- ≈ 20 часов + экзамен 3 часа
- Компетенции
- DATA-01·A, API-03·A, PROMPT-04·A, EMB-02·A, EVAL-02·A, AIDEV-02·A
Проект PRJ-03: Document AI
Задача. Операционный сотрудник получает поток документов: письма, акты, заявки. Нужно извлекать структурированные поля и складывать их в базу.
Требования.
- Пайплайн
ingest → parse → extract → validate → store: PDF, HTML, DOCX или TXT на входе, SQLite на выходе. - Извлечение по Pydantic-схеме с fail-safe: невалидный ответ модели не роняет пайплайн, документ попадает в очередь ручного разбора с причиной.
- Промпт в
prompts/с версией и CHANGELOG. - Два провайдера: облачная модель и локальная (через OpenAI-совместимый API). Переключение — переменной окружения, без правки кода.
- Персональные данные из документов не попадают в логи: в лог пишется doc_id и статус, а не текст.
Evaluation. 20 документов с эталонными полями. Точность по каждому полю отдельно, для каждого провайдера. Порог точности вы заявляете и обосновываете сами («ошибка в сумме стоит дороже, чем в категории, поэтому порог по сумме — 0,95»).
Cost. Стоимость обработки одного документа у облачного провайдера (по usage) и время у локального.
Документация. README (запуск одной-двумя командами, переменные, пример), таблица результатов eval, лицензия локальной модели.
Приёмка. Точность полей ≥ заявленного порога; файл-ловушка (битый PDF, пустой документ, документ с инструкцией внутри) не роняет пайплайн; запуск по README на чистой машине; секретов нет в истории Git.
Проект PRJ-04: Semantic Search
Задача. Сотрудники не находят ответы в базе знаний по ключевым словам. Нужен поиск по смыслу.
Требования.
- Корпус из PRJ-03 (или корпус Research Assistant, ≥ 30 документов) → фрагменты → эмбеддинги → индекс на диске с записью «какая модель, какая версия корпуса».
- Поиск top-k с метаданными (doc_id, категория, дата) и CLI или простой HTTP-эндпоинт.
- Golden set 15–20 запросов (≥ 3 трудных, ≥ 2 вне базы) и eval-скрипт с числом на выходе и кодом возврата.
- Сравнение двух моделей эмбеддингов по hit@1 и hit@5 и по стоимости индексации корпуса.
- Повторная индексация пропускает неизменённые документы.
Документация. README; docs/evaluation.md (набор, метрики, результаты обеих моделей, как воспроизвести); короткий ADR «какую модель эмбеддингов выбрали и почему».
Приёмка.
- Проверяющий запускает eval по README и получает те же числа (CE-04).
- Вы устно объясняете любую строку своего кода по выбору проверяющего (CE-03, правило AIDEV-02).
- Нет секретов в истории Git (CE-01).
- В отчёте названы конкретные запросы, на которых поиск ошибается, и гипотеза почему.
Экзамен уровня
3 часа, свой компьютер, доступ к документации, без AI-ассистентов для генерации кода. Дан набор из 15 коротких документов (заявки на ремонт) и 10 поисковых запросов с эталоном.
- Извлечение (75 мин). Схема заявки (6 полей, 2 из них необязательные), извлечение по всем документам, fail-safe, результат в JSONL. Проверка: точность ≥ 0,8 по полям на скрытом эталоне; документ-ловушка не роняет скрипт.
- Поиск (45 мин). Индекс эмбеддингов над теми же документами и функция
search. - Eval (30 мин). Скрипт hit@3 по 10 запросам с числом на выходе и списком провалов.
- Устная часть (до 30 мин). Проверяющий выбирает 3 места в вашем коде: что делает, почему так, что сломается, если убрать.
Зачёт: все три части работают, ключ не в коде, устная часть пройдена (CE-03 — незачёт независимо от остального). Плюс оба квиза уровня ≥ 7 из 10.
