# Python Parser CF - Система анализа данных

Проект состоит из трех основных компонентов:
- **python_parser** - FastAPI приложение для парсинга и обработки данных
- **streamlit_app** - Streamlit приложение для визуализации и анализа
- **minio_data** - хранилище данных MinIO

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

### Предварительные требования
- Docker и Docker Compose
- Git

### Запуск всех сервисов (продакшн)
```bash
docker compose up -d
```

### Запуск в режиме разработки
```bash
# Автоматический запуск
python start_dev.py

# Или вручную
docker compose -f docker-compose.dev.yml up -d
```

**Режим разработки** позволяет:
- Автоматически перезагружать Streamlit при изменении кода
- Монтировать исходный код напрямую в контейнер
- Видеть изменения без пересборки контейнеров

### Доступ к сервисам
- **FastAPI**: http://localhost:8000
- **Streamlit**: http://localhost:8501
- **MinIO Console**: http://localhost:9001
- **MinIO API**: http://localhost:9000

### Остановка сервисов
```bash
docker-compose down
```

## 📁 Структура проекта

```
python_parser_cf/
├── python_parser/          # FastAPI приложение
│   ├── app/               # Основной код приложения
│   ├── adapters/          # Адаптеры для парсеров
│   ├── core/              # Основная бизнес-логика
│   ├── data/              # Тестовые данные
│   └── Dockerfile         # Docker образ для FastAPI
├── streamlit_app/          # Streamlit приложение
│   ├── streamlit_app.py   # Основной файл приложения
│   ├── requirements.txt    # Зависимости Python
│   ├── .streamlit/        # Конфигурация Streamlit
│   └── Dockerfile         # Docker образ для Streamlit
├── minio_data/            # Данные для MinIO
├── docker-compose.yml     # Конфигурация всех сервисов
└── README.md              # Документация
```

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

### Переменные окружения
Все сервисы используют следующие переменные окружения:
- `MINIO_ENDPOINT` - адрес MinIO сервера
- `MINIO_ACCESS_KEY` - ключ доступа к MinIO
- `MINIO_SECRET_KEY` - секретный ключ MinIO
- `MINIO_SECURE` - использование SSL/TLS
- `MINIO_BUCKET` - имя bucket'а для данных

### Порты
- **8000** - FastAPI
- **8501** - Streamlit
- **9000** - MinIO API
- **9001** - MinIO Console

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

1. **Запустите все сервисы**: `docker-compose up -d`
2. **Откройте Streamlit**: http://localhost:8501
3. **Выберите тип данных** для анализа
4. **Просматривайте результаты** в интерактивном интерфейсе

## 🛠️ Разработка

### Режим разработки (рекомендуется)
```bash
# Запуск режима разработки
python start_dev.py

# Остановка
docker compose -f docker-compose.dev.yml down

# Возврат к продакшн режиму
python start_prod.py
```

### Локальная разработка FastAPI
```bash
cd python_parser
pip install -r requirements.txt
uvicorn app.main:app --reload
```

### Локальная разработка Streamlit
```bash
cd streamlit_app
pip install -r requirements.txt
streamlit run streamlit_app.py
```

## 📝 Лицензия

Проект разработан для внутреннего использования. 