Maison >développement back-end >Tutoriel Python >Créez votre propre expérience d'apprentissage AWS personnalisée avec Streamlit
Dans mon parcours vers l'apprentissage d'AWS et de l'apprentissage automatique/IA, j'ai décidé de créer un outil de recommandation de parcours d'apprentissage AWS simple mais puissant en utilisant Streamlit, le traitement du langage naturel ou le PNL via une simulation. Environnement S3. Cette application sera en mesure de suggérer des parcours d'apprentissage AWS en fonction des entrées de l'utilisateur.
Alors, allons-y !
Prérequis
Avant de commencer, assurez-vous que Python est installé et créez un nouveau dossier de projet. Ensuite, installez les bibliothèques ci-dessous :
pip install streamlit boto3 moto scikit-learn
Étape 1 : Configuration du Mock S3
Tout d'abord, nous définissons une fonction pour créer un S3 simulé à l'aide de Moto ; cela sera utilisé pour simuler AWS S3 sans se connecter à AWS.
import boto3 from moto import mock_s3 import json def setup_mock_s3(): s3 = boto3.resource("s3", region_name="us-east-1") bucket_name = "mock-learning-paths" s3.create_bucket(Bucket=bucket_name) data = { "resources": [ {"title": "Introduction to AWS", "tags": "AWS, Cloud Computing, Basics"}, {"title": "Deep Learning on AWS", "tags": "AWS, Deep Learning, AI"}, {"title": "NLP with SageMaker", "tags": "AWS, NLP, Machine Learning"}, {"title": "Serverless with AWS Lambda", "tags": "AWS, Serverless, Lambda"}, ] } s3.Bucket(bucket_name).put_object(Key="mock_resources.json", Body=json.dumps(data)) return bucket_name
Étape 2 : Fonction de recommandation
Ensuite, nous définirons une fonction qui, compte tenu de la contribution d'un utilisateur, fera des suggestions de parcours d'apprentissage en utilisant du NLP :
from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity def recommend_learning_path(user_input, bucket_name): s3 = boto3.client("s3", region_name="us-east-1") obj = s3.get_object(Bucket=bucket_name, Key="mock_resources.json") data = json.loads(obj['Body'].read().decode('utf-8')) resources = data["resources"] titles = [resource["title"] for resource in resources] tags = [resource["tags"] for resource in resources] corpus = tags + [user_input] vectorizer = TfidfVectorizer() tfidf_matrix = vectorizer.fit_transform(corpus) similarity = cosine_similarity(tfidf_matrix[-1], tfidf_matrix[:-1]) scores = similarity.flatten() ranked_indices = scores.argsort()[::-1] recommendations = [titles[i] for i in ranked_indices[:3]] return recommendations
Étape 3 : Interface rationalisée
Concevons maintenant l'interface de notre application à l'aide de Streamlit :
import streamlit as st st.title("AWS Learning Path Recommender") user_input = st.text_input("What do you want to learn about AWS?", "I want to learn about AWS and AI") if st.button("Get Recommendations"): with mock_s3(): bucket_name = setup_mock_s3() recommendations = recommend_learning_path(user_input, bucket_name) st.subheader("Recommended Learning Path:") for i, rec in enumerate(recommendations, 1): st.write(f"{i}. {rec}")
Étape 4 : Assembler le tout
Combinez tous les extraits de code dans un seul fichier Python nommé « app.py » :
import streamlit as st import boto3 from moto import mock_s3 import json from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # [Insert setup_mock_s3 function here] # [Insert recommend_learning_path function here] st.title("AWS Learning Path Recommender") user_input = st.text_input("What do you want to learn about AWS?", "I want to learn about AWS and AI") if st.button("Get Recommendations"): with mock_s3(): bucket_name = setup_mock_s3() recommendations = recommend_learning_path(user_input, bucket_name) st.subheader("Recommended Learning Path:") for i, rec in enumerate(recommendations, 1): st.write(f"{i}. {rec}")
Étape 5 : Exécutez l'application
Pour démarrer l'application Streamlit, ouvrez un terminal, remplacez le répertoire par le dossier de votre projet et exécutez :
streamlit run app.py
Cela démarrera le serveur Streamlit et ouvrira l'application dans votre navigateur Web par défaut.
Comment ça marche
L'application crée un compartiment S3 fictif rempli de quelques exemples de ressources d'apprentissage AWS.
Cette application recommande les ressources les plus pertinentes, en utilisant TF-IDF en plus de la similarité cosinus, en saisissant les intérêts de l'utilisateur dans l'apprentissage et en cliquant sur « Obtenir des recommandations ». Les 3 principales recommandations seront présentées aux utilisateurs.
Conclusion.
Cette application simple utilise Streamlit pour coller les techniques de PNL avec les services AWS, certes moqués, afin de créer un outil de recommandation de parcours d'apprentissage interactif. Vous pouvez étendre cet exemple en intégrant les services AWS réels, en ajoutant plus de ressources ou en utilisant des algorithmes de recommandation plus sophistiqués.
Il s'agit d'un exemple très simple et peut être considérablement amélioré pour la production. N'oubliez pas que la sécurité, l'évolutivité et l'expérience utilisateur sont des préoccupations majeures lors du développement d'applications pour le monde réel.
Merci beaucoup d'avoir lu ceci !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!