Files
Test-task/README.md
T

7.8 KiB
Raw Blame History

AI Lead Processor

В ремонтной компании менеджер читает все обращения с сайта по очереди. Пока он готовит ответ на вопрос о цене, в почте может ждать сообщение о протечке. AI Lead Processor помогает оценить срочность при чтении обращения и подготовить ответ. Менеджер проверяет результат, сохраняет его в журнал и сам связывается с клиентом.

  • Три категории с объяснением решения. Срочные обращения выделены красным, обычные зелёным, спам серым.
  • Редактирование категории и черновика перед записью. Спам сохраняется с пустым ответом.
  • Локальная история в Excel, скачивание книги и калькулятор экономии времени.
  • REAL AI обращается к OpenAI. DEMO работает локально по правилам и показывает тот же процесс проверки.

Менеджер проверяет срочную заявку и черновик перед сохранением

Быстрый запуск

Требуются Git и Python 3.11 или новее. Выполните команды из корня проекта. Активация окружения необязательна.

Windows PowerShell

py -3.12 -m venv .venv
.\.venv\Scripts\python -m pip install -r requirements.txt
Copy-Item .env.example .env
.\.venv\Scripts\python -m streamlit run app.py --server.address localhost

Если установлен Python 3.11, замените -3.12 на -3.11. Копировать пример нужно только при первом запуске.

Linux / macOS

python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
cp -n .env.example .env
.venv/bin/python -m streamlit run app.py --server.address localhost

Откройте локальное приложение. Для первого знакомства выберите DEMO. Введите пример ниже, нажмите «Обработать заявку», проверьте черновик и нажмите «Подтвердить и сохранить». Книга data/processed_leads.xlsx создаётся автоматически. После перезапуска история читается с диска.

Настройка и ручная проверка REAL AI

В локальном .env укажите собственный ключ и доступную вашему проекту модель с поддержкой Responses API и структурированного вывода. Пример формата:

OPENAI_API_KEY=your_api_key_here
OPENAI_MODEL=gpt-5-mini

Примеры входа и результата

Синтетическая заявка Категория DEMO Что увидит менеджер
Из стиральной машины течет вода. Срочно Причина со ссылкой на признак протечки и черновик с подтверждением получения
Сколько стоит ремонт стиральной машины? Не срочно Уточнение марки, модели и неисправности
Зарабатывайте миллион рублей за неделю, переходите по ссылке Спам Объяснение и пустой черновик

Полная выборка включает неоднозначные случаи, попытку навязать категорию и пустой ввод. Ожидаемые категории заданы по правилам кейса. Тестовые заявки

Архитектура

app.py принимает текст длиной от 1 до 4 000 символов. Модуль src/llm_service.py выбирает локальные правила или передаёт текст отдельным пользовательским сообщением в Responses API. Схема src/schemas.py задаёт допустимые поля и категории. Ответ и UUID операции хранятся в текущей сессии до подтверждения.

Менеджер видит исходную оценку и редактирует итог. Модуль src/storage.py под блокировкой добавляет строку в книгу через временный файл. Повтор того же сохранения распознаётся по UUID. Отдельная повторная обработка одинакового текста считается новой заявкой. Строки записываются с текстовым типом Excel, включая текст, начинающийся со знака равенства. src/economics.py рассчитывает время и оценочную стоимость.

Экономический эффект

Иллюстративный сценарий на 120 обращений в неделю при 4 минутах вручную и 1,5 минуты с проверкой даёт 8 и 3 часа соответственно. Высвобождаются 5 часов в неделю. При 500 ₽/ч их оценка составляет 2 500 ₽. При допущении 600 входных и 250 выходных токенов один стандартный запрос стоит около $0,00065. Допущения, формулы и тариф

Ограничения пилота

Менеджер переносит текст с сайта вручную. Обновление вкладки сбрасывает неподтверждённый результат. Excel рассчитан на небольшой локальный журнал, с доступом на уровне папки. Закройте книгу в настольном Excel перед записью. Для пилота назначьте владельца журнала и согласуйте резервное копирование, срок хранения и передачу обезличенного текста внешнему сервису.

Проверка

Для разработки и проверок установите дополнительные зависимости в то же окружение. В PowerShell:

.\.venv\Scripts\python -m pip install -r requirements-dev.txt
.\.venv\Scripts\python -m ruff check .
.\.venv\Scripts\python -m ruff format --check .
.\.venv\Scripts\python -m pytest -v

На Linux/macOS в этих четырёх командах используйте .venv/bin/python как интерпретатор. Тесты используют временные книги и моки API. Доля правильных ответов модели на реальных обращениях измеряется отдельно.

Материалы тестового задания