Heim >Backend-Entwicklung >Python-Tutorial >Erstellen Sie mit Streamlit Ihr eigenes personalisiertes AWS-Lernerlebnis
Auf meinem Weg, etwas über AWS und maschinelles Lernen/KI zu lernen, habe ich beschlossen, einen einfachen, aber leistungsstarken AWS-Lernpfad-Empfehler mit Streamlit, natürlicher Sprachverarbeitung oder NLP über ein Mock zu erstellen S3-Umgebung. Diese Anwendung kann AWS-Lernpfade basierend auf Benutzereingaben vorschlagen.
Also, lasst uns loslegen!
Voraussetzungen
Bevor wir beginnen, stellen Sie sicher, dass Python installiert ist und erstellen Sie einen neuen Projektordner. Installieren Sie dann die folgenden Bibliotheken:
pip install streamlit boto3 moto scikit-learn
Schritt 1: Einrichten des Mock S3
Zuerst definieren wir eine Funktion zum Erstellen eines S3-Mocks mit Moto; Dies wird verwendet, um AWS S3 zu simulieren, ohne eine Verbindung zu AWS herzustellen.
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
Schritt 2: Empfehlungsfunktion
Als nächstes definieren wir eine Funktion, die anhand der Eingaben eines Benutzers Vorschläge für Lernpfade unter Verwendung von NLP macht:
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
Schritt 3: Streamlit-Schnittstelle
Lassen Sie uns nun die Benutzeroberfläche unserer Anwendung mit Streamlit entwerfen:
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}")
Schritt 4: Alles zusammenfügen
Kombinieren Sie alle Codeausschnitte in einer einzigen Python-Datei mit dem Namen „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}")
Schritt 5: Führen Sie die App aus
Um die Streamlit-App zu starten, öffnen Sie ein Terminal, ändern Sie das Verzeichnis in Ihren Projektordner und führen Sie Folgendes aus:
streamlit run app.py
Dadurch wird der Streamlit-Server gestartet und die App in Ihrem Standard-Webbrowser geöffnet.
Wie es funktioniert
Die App erstellt einen simulierten S3-Bucket, der mit einigen beispielhaften AWS-Lernressourcen gefüllt ist.
Diese Anwendung empfiehlt die relevantesten Ressourcen unter Verwendung von TF-IDF zusätzlich zur Kosinusähnlichkeit, indem sie die Interessen des Benutzers am Lernen eingibt und auf „Empfehlungen abrufen“ klickt. Den Benutzern werden die Top-3-Empfehlungen angezeigt.
Fazit.
Diese einfache Anwendung verwendet Streamlit, um die NLP-Techniken mit AWS-Diensten zu verbinden, die zugegebenermaßen verspottet werden, um einen interaktiven Lernpfad-Empfehler zu erstellen. Sie können dieses Beispiel erweitern, indem Sie die tatsächlichen AWS-Dienste integrieren, weitere Ressourcen hinzufügen oder ausgefeiltere Empfehlungsalgorithmen verwenden.
Dies ist ein sehr einfaches Beispiel und kann für die Produktion erheblich verbessert werden. Denken Sie daran, dass Sicherheit, Skalierbarkeit und Benutzererfahrung wichtige Aspekte bei der Entwicklung von Anwendungen für die reale Welt sind.
Vielen Dank für das Lesen!
Das obige ist der detaillierte Inhalt vonErstellen Sie mit Streamlit Ihr eigenes personalisiertes AWS-Lernerlebnis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!