Files
python_parser/python_parser/README_STREAMLIT.md
2025-08-28 12:16:36 +03:00

5.7 KiB
Raw Blame History

🚀 Streamlit Demo для NIN Excel Parsers API

Описание

Streamlit приложение для демонстрации работы всех API эндпоинтов NIN Excel Parsers. Предоставляет удобный веб-интерфейс для тестирования функциональности парсеров.

Возможности

  • 📤 Загрузка файлов: Загрузка ZIP архивов и Excel файлов
  • 📊 Сводки ПМ: Работа с плановыми и фактическими данными
  • 🏭 Сводки СА: Парсинг сводок центрального аппарата
  • Мониторинг топлива: Анализ данных по топливу
  • 📱 Адаптивный интерфейс: Удобное использование на всех устройствах

Установка и запуск

1. Установка зависимостей

pip install -r requirements.txt

2. Запуск FastAPI сервера

В одном терминале:

python run_dev.py

3. Запуск Streamlit приложения

В другом терминале:

python run_streamlit.py

Или напрямую:

streamlit run streamlit_app.py

4. Открытие в браузере

Приложение автоматически откроется по адресу: http://localhost:8501

Конфигурация

Переменные окружения

# URL API сервера
export API_BASE_URL="http://localhost:8000"

# Порт Streamlit
export STREAMLIT_PORT="8501"

# Хост Streamlit
export STREAMLIT_HOST="localhost"

Настройки Streamlit

Файл .streamlit/config.toml содержит настройки:

  • Порт: 8501
  • Хост: localhost
  • Тема: Кастомная цветовая схема
  • Безопасность: Отключены CORS и XSRF для локальной разработки

Структура приложения

Вкладки

  1. 📤 Загрузка файлов

    • Загрузка сводок ПМ (ZIP)
    • Загрузка мониторинга топлива (ZIP)
    • Загрузка сводки СА (Excel)
  2. 📊 Сводки ПМ

    • Данные по одному ОГ
    • Данные по всем ОГ
    • Выбор кодов строк и столбцов
  3. 🏭 Сводки СА

    • Выбор режимов (план/факт/норматив)
    • Выбор таблиц для анализа
  4. Мониторинг топлива

    • Агрегация по колонкам
    • Данные за конкретный месяц

Боковая панель

  • Информация о сервере (PID, CPU, память)
  • Список доступных парсеров
  • Статус подключения к API

Использование

1. Загрузка файлов

  1. Выберите соответствующий тип файла
  2. Нажмите "Загрузить"
  3. Дождитесь подтверждения загрузки

2. Получение данных

  1. Выберите нужные параметры (ОГ, коды, столбцы)
  2. Нажмите "Получить данные"
  3. Результат отобразится в JSON формате

3. Мониторинг

  • Проверяйте статус API в верхней части
  • Следите за логами операций
  • Используйте индикаторы загрузки

Устранение неполадок

API недоступен

# Проверьте, запущен ли FastAPI сервер
curl http://localhost:8000/

# Проверьте порт
netstat -an | grep 8000

Streamlit не запускается

# Проверьте версию Python
python --version

# Переустановите Streamlit
pip uninstall streamlit
pip install streamlit

# Проверьте порт 8501
netstat -an | grep 8501

Ошибки загрузки файлов

  • Убедитесь, что файл соответствует формату
  • Проверьте размер файла (не более 100MB)
  • Убедитесь, что MinIO запущен

Разработка

Добавление новых функций

  1. Создайте новую вкладку в streamlit_app.py
  2. Добавьте соответствующие API вызовы
  3. Обновите боковую панель при необходимости

Кастомизация темы

Отредактируйте .streamlit/config.toml:

[theme]
primaryColor = "#FF4B4B"
backgroundColor = "#FFFFFF"
# ... другие цвета

Добавление новых парсеров

  1. Создайте парсер в adapters/parsers/
  2. Добавьте в main.py
  3. Обновите Streamlit интерфейс

Безопасность

⚠️ Внимание: Приложение настроено для локальной разработки

  • CORS отключен
  • XSRF защита отключена
  • Не используйте в продакшене без дополнительной настройки

Поддержка

При возникновении проблем:

  1. Проверьте логи в терминале
  2. Убедитесь, что все сервисы запущены
  3. Проверьте конфигурацию
  4. Обратитесь к документации API: http://localhost:8000/docs