Faites évoluer un chatbot Streamlit avec état avec AWS ECS et EFS

DEV - 20/01
Vous avez créé une excellente application Streamlit. Tout fonctionne bien localement quand votre patron...

Vous avez créé une excellente application Streamlit. Tout fonctionne bien localement lorsque votre patron vous demande :

Votre application PoC GenAI est géniale. Rendons-le accessible à toute l'entreprise !

Vous l'avez déployé sur une machine virtuelle (peut-être en utilisant une adresse commehttp://12.34.56.78:8501`) et vos collègues se sont précipités avec enthousiasme, le serveur a été surchargé et redémarré à plusieurs reprises. Certaines de leurs précieuses données d’utilisation ont été perdues à jamais. Ils ont perdu leur travail. Vous avez essayé de le réparer avec du ruban adhésif en doublant la taille de la VM (à plusieurs reprises), mais le même modèle de surcharge + redémarrage s'est répété. Vous vous sentez impuissant.

Introduction

Streamlit est sans aucun doute l'un des meilleurs frameworks permettant aux développeurs Python de créer des applications Web interactives. Avec le regain d'intérêt pour l'IA générative depuis fin 2022, le package a connu une popularité croissante, comme en témoigne son nombre croissant d'observateurs d'étoiles GitHub :

Plus important encore, l'utilisation de Streamlit signifie que vous n'avez pas à vous soucier de l'apprentissage du côté frontend des choses. Vous pouvez vous concentrer sur la création des fonctionnalités de base de votre application, tandis que Streamlit s'occupe du reste. Cependant, lorsqu'il s'agit de déployer des applications Streamlit sur le cloud, les choses peuvent devenir un peu délicates.

État et évolutivité avec Streamlit

Lorsque vous faites migrer votre application Streamlit d'un environnement local vers le cloud, deux défis critiques se posent : garantir l'état et atteindre l'évolutivité. Par défaut, Streamlit conserve l'état en mémoire, ce qui signifie que tout état est perdu lorsque l'utilisateur actualise la page ou que le serveur redémarre. Cela peut constituer un obstacle important lors de la mise à l'échelle de l'application sur plusieurs instances, ou lorsque...
[Courte citation de 8% de l'article original]

Loading...