Ajouter une application Streamlit à un paquet d’application

Cette rubrique décrit comment ajouter une application Streamlit à un paquet d’applications.

À propos de l’utilisation de Streamlit dans une application

Streamlit est un framework Python open source pour le développement d’applications de science des données et de machine learning. Le Snowflake Native App Framework vous permet d’inclure des applications Streamlit dans une Snowflake Native App afin d’offrir une interaction avec l’utilisateur et une visualisation des données.

Note

Voir Fonctions Streamlit non prises en charge et Limites de l’utilisation de Streamlit dans le Native Apps Framework pour des informations sur les fonctions Streamlit non prises en charge.

Exemple de structure de répertoire pour une application Streamlit

Comme pour les autres modules Python, pour ajouter une application Streamlit à un paquet d’application, vous devez charger vos fichiers de code Streamlit dans une zone de préparation nommée. Consultez PUT pour obtenir des informations sur la manière de charger des fichiers dans une zone de préparation.

Pour prendre en charge plusieurs versions d’une Snowflake Native App, envisagez d’utiliser une structure de répertoire similaire à la suivante pour gérer vos applications Streamlit et des fichiers d’application associés :

@test.schema1.stage1:
└── /
    ├── manifest.yml
    ├── readme.md
    ├── scripts/setup_script.sql
    └── code_artifacts/
        └── streamlit/
            └── environment.yml
            └── streamlit_app.py
Copy

Notez que la structure du répertoire que vous utilisez dépend de votre environnement.

Note

Le fichier environment.yml doit se trouver au même niveau que votre fichier principal de votre application Streamlit.

Reportez-vous à Référencement de fichiers de code externes pour plus d’informations sur les chemins relatifs.

Ajouter une application Streamlit au fichier Manifest

Pour inclure un fichier Streamlit dans un paquet d’application, ajoutez les entrées suivantes dans le fichier manifest.yml.

artifacts:
  ...
  extension_code: true
  ...
Copy

L’entrée extension_code: true est nécessaire pour activer tout code d’extension dans votre application.

configuration:
  ...
  default_streamlit: app_schema.streamlit_app_na
  ...
Copy

L’entrée default_streamlit: app_schema.streamlit_app_na indique l’emplacement du schéma contenant votre application Streamlit.

Ajout d’une application Streamlit au script d’installation

L’exemple suivant montre comment utiliser CREATE STREAMLIT dans le script d’installation.

CREATE STREAMLIT app_schema.my_test_app_na
     FROM '/code_artifacts/streamlit'
     MAIN_FILE = '/streamlit_app.py';

GRANT USAGE ON SCHEMA APP_SCHEMA TO DATABASE ROLE app_public;
GRANT USAGE ON STREAMLIT APP_SCHEMA.MY_TEST_APP_NA TO DATABASE ROLE app_public;
Copy

Cet exemple crée un objet Streamlit dans un schéma nommé app_schema. La commande CREATE STREAMLIT utilise l’application Streamlit spécifiée dans la clause MAIN_FILE dans le répertoire spécifié par la clause FROM.

Fonctions Streamlit non prises en charge

Les fonctions Streamlit suivantes ne sont pas prises en charge actuellement :

Limites de l’utilisation de Streamlit dans le Native Apps Framework

Cette section décrit les limites de l’utilisation de Streamlit dans le Snowflake Native App Framework.

Les composants personnalisés ne sont pas pris en charge

Les composants personnalisés ne sont pas pris en charge.

Les systèmes de contrôle de version intégré ou CI/CD ne sont pas pris en charge

Les applications Streamlit ne sont pas intégrées aux systèmes de contrôle des versions. L’historique de l’application ou les modifications du code sont permanents et ne peuvent pas être annulés.

Il n’y a pas d’intégration avec GitHub, GitLab ou d’autres fournisseurs de contrôle de version.

Les modifications apportées à l’application sont visibles par les utilisateurs de l’application

Lorsqu’un développeur lance l’application en cours de modification, les modifications sont immédiatement visibles par les utilisateurs de l’application.

Les bibliothèques Seaborn et Matlibplot ne sont pas prises en charge

Les bibliothèques Seaborn et Matlibplot ne sont pas prises en charge. Les deux ont des dépendances sur la fonction st.image() qui n’est actuellement pas prise en charge.

Dépannage de Streamlit

Si l’application affiche une erreur inconnue, assurez-vous d’avoir essayé les solutions décrites dans les sections suivantes.

Acceptation des conditions de service

Pour utiliser Streamlit et les paquets fournis par Anaconda dans Snowflake, vous devez accepter les Conditions de tiers de Snowflake. Pour en savoir plus, voir Utilisation de paquets tiers à partir d’Anaconda.

Liste d’autorisations du pare-feu

Chaque application Streamlit utilise un sous-domaine unique. Si vous utilisez des pare-feux stricts, ajoutez *.snowflake.app à la liste des autorisations de votre pare-feu. L’ajout de cette entrée à votre liste d’autorisations permet à vos applications de communiquer avec les serveurs de Snowflake sans aucune restriction.