5.7 KiB
5.7 KiB
🚀 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 для локальной разработки
Структура приложения
Вкладки
-
📤 Загрузка файлов
- Загрузка сводок ПМ (ZIP)
- Загрузка мониторинга топлива (ZIP)
- Загрузка сводки СА (Excel)
-
📊 Сводки ПМ
- Данные по одному ОГ
- Данные по всем ОГ
- Выбор кодов строк и столбцов
-
🏭 Сводки СА
- Выбор режимов (план/факт/норматив)
- Выбор таблиц для анализа
-
⛽ Мониторинг топлива
- Агрегация по колонкам
- Данные за конкретный месяц
Боковая панель
- Информация о сервере (PID, CPU, память)
- Список доступных парсеров
- Статус подключения к API
Использование
1. Загрузка файлов
- Выберите соответствующий тип файла
- Нажмите "Загрузить"
- Дождитесь подтверждения загрузки
2. Получение данных
- Выберите нужные параметры (ОГ, коды, столбцы)
- Нажмите "Получить данные"
- Результат отобразится в 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 запущен
Разработка
Добавление новых функций
- Создайте новую вкладку в
streamlit_app.py - Добавьте соответствующие API вызовы
- Обновите боковую панель при необходимости
Кастомизация темы
Отредактируйте .streamlit/config.toml:
[theme]
primaryColor = "#FF4B4B"
backgroundColor = "#FFFFFF"
# ... другие цвета
Добавление новых парсеров
- Создайте парсер в
adapters/parsers/ - Добавьте в
main.py - Обновите Streamlit интерфейс
Безопасность
⚠️ Внимание: Приложение настроено для локальной разработки
- CORS отключен
- XSRF защита отключена
- Не используйте в продакшене без дополнительной настройки
Поддержка
При возникновении проблем:
- Проверьте логи в терминале
- Убедитесь, что все сервисы запущены
- Проверьте конфигурацию
- Обратитесь к документации API: http://localhost:8000/docs