Rumah >pembangunan bahagian belakang >Tutorial Python >Cipta Pengalaman Pembelajaran AWS Peribadi Anda Sendiri dengan Streamlit

Cipta Pengalaman Pembelajaran AWS Peribadi Anda Sendiri dengan Streamlit

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-27 12:27:10795semak imbas

Create Your Own Personalised AWS Learning Experience with Streamlit

Dalam perjalanan saya ke arah mempelajari tentang AWS dan pembelajaran mesin/AI, saya telah memutuskan untuk mencipta Pengesyor Laluan Pembelajaran AWS yang ringkas tetapi berkuasa menggunakan Streamlit, pemprosesan bahasa semula jadi atau NLP melalui mock persekitaran S3. Aplikasi ini akan dapat mencadangkan laluan pembelajaran AWS berdasarkan input pengguna.  

Jadi, mari kita mula mempelajarinya!

Prasyarat

Sebelum kita mula, pastikan Python dipasang dan buat folder projek baharu. Kemudian, pasang perpustakaan di bawah:

 

pip install streamlit boto3 moto scikit-learn

Langkah 1: Sediakan Mock S3

Pertama, kami mentakrifkan fungsi untuk mencipta S3 olok-olok menggunakan Moto; ini akan digunakan untuk mensimulasikan AWS S3 tanpa menyambung ke 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

Langkah 2: Fungsi Pengesyoran

Seterusnya, kami akan mentakrifkan fungsi yang, diberikan input pengguna, akan membuat cadangan untuk laluan pembelajaran dengan menggunakan beberapa 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

Langkah 3: Perkemas Antara Muka

Mari kita reka bentuk antara muka aplikasi kita menggunakan 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}")

Langkah 4: Menyatukan Semuanya
Gabungkan semua coretan kod ke dalam satu fail Python bernama '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}")

Langkah 5: Jalankan Apl
Untuk memulakan apl Streamlit, buka terminal, tukar direktori kepada folder projek anda dan jalankan:

streamlit run app.py

Ini akan but pelayan Streamlit dan membuka apl dalam penyemak imbas web lalai anda.

Cara Ia Berfungsi
Apl ini mencipta baldi S3 palsu yang diisi dengan beberapa contoh sumber pembelajaran AWS.

Aplikasi ini mengesyorkan sumber yang paling berkaitan, menggunakan TF-IDF sebagai tambahan kepada persamaan kosinus, dengan memasukkan minat pengguna dalam pembelajaran dan mengklik "Dapatkan Pengesyoran." 3 pengesyoran teratas akan ditunjukkan kepada pengguna.

Kesimpulan.

Aplikasi mudah ini menggunakan Streamlit untuk menggabungkan teknik NLP dengan perkhidmatan AWS, diakui diejek, untuk mencipta pengesyor laluan pembelajaran interaktif. Anda boleh melanjutkan contoh ini dengan menyepadukan perkhidmatan AWS sebenar, menambahkan lebih banyak sumber atau menggunakan algoritma pengesyoran yang lebih canggih.

Ini adalah contoh yang sangat mudah dan boleh ditambah baik untuk pengeluaran. Ingat, keselamatan, kebolehskalaan dan pengalaman pengguna adalah kebimbangan utama semasa membangunkan aplikasi untuk dunia sebenar.

Terima kasih banyak kerana membaca ini!

Atas ialah kandungan terperinci Cipta Pengalaman Pembelajaran AWS Peribadi Anda Sendiri dengan Streamlit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn