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 поисковых запросов с эталоном.

  1. Извлечение (75 мин). Схема заявки (6 полей, 2 из них необязательные), извлечение по всем документам, fail-safe, результат в JSONL. Проверка: точность ≥ 0,8 по полям на скрытом эталоне; документ-ловушка не роняет скрипт.
  2. Поиск (45 мин). Индекс эмбеддингов над теми же документами и функция search.
  3. Eval (30 мин). Скрипт hit@3 по 10 запросам с числом на выходе и списком провалов.
  4. Устная часть (до 30 мин). Проверяющий выбирает 3 места в вашем коде: что делает, почему так, что сломается, если убрать.

Зачёт: все три части работают, ключ не в коде, устная часть пройдена (CE-03 — незачёт независимо от остального). Плюс оба квиза уровня ≥ 7 из 10.

Диагностика уровня

С какого уровня начать?

Оставьте контакты — свяжемся, зададим несколько вопросов об опыте и целях и подскажем уровень входа: с нуля, с середины программы или через Fast Track для разработчиков.

Или напишите: hello@superint.ru