Как создать панель мониторинга Streamlit с сохранением состояния в JSON?Python

Программы на Python
Ответить
Anonymous
 Как создать панель мониторинга Streamlit с сохранением состояния в JSON?

Сообщение Anonymous »


Я работаю над проектом информационной панели Streamlit, в котором мне нужно сохранить состояние приложения, включая различные параметры и поведение, в формате JSON. Цель состоит в том, чтобы гарантировать, что когда пользователи взаимодействуют с панелью мониторинга и вносят изменения в параметры, эти изменения автоматически сериализуются в JSON и сохраняются. При обновлении или повторном посещении информационной панели состояние должно автоматически загружаться из файла JSON
.
Вот пример Python I'

Сейчас я работаю над: питон Скопировать код импортировать ОС импортировать JSON от ввода списка импорта из pydantic import BaseModel, root_validator STATE_PATH = os.path.join(os.getcwd(), 'crop_state.json') класс SelectCameraState (BaseModel): selected_cameras: Список[str] класс CropState(BaseModel): Crop_type: str # Привязка/Фиксированная bbox: Список[int] якорный_класс: ул якорь_позиция: Список[int] класс ProcessState(BaseModel): Feature_extractor: ул embedding_processor: ул outlier_detector: ул класс ApplicationState(BaseModel): camera_select_state: SelectCameraState Crop_state: CropState Конфигурация класса: validate_assignment = Истина @root_validator Защиту update_property (cls, значения): с open(STATE_PATH, 'w') как f: f.write(json.dumps(значения)) а = Состояние приложения() a.camera_select_state = SelectCameraState() a.camera_select_state.selected_cameras = ["бла"] Однако при таком подходе я столкнулся с некоторыми проблемами:

При использовании моделей Pydantic изменения в изменяемых объектах, таких как списки, не распознаются автоматически корневым валидатором, что приводит к проблемам с сохранением состояния.

Этот подход не соответствует традиционным шаблонам управления состоянием в приложениях Streamlit.

Мне нужно руководство о том, как более эффективно и привычно реализовать сохранение состояния на информационной панели Streamlit. Я открыт для предложений по шаблонам проектирования, библиотекам и методам, которые помогут мне добиться сохранения состояния в Streamlit, приспосабливая изменения к изменяемым объектам и сохраняя чистый, организованный код.

Мы будем очень признательны за любые советы, примеры кода или рекомендации по управлению сохранением состояния в Streamlit.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»