Doctor AI

Dr. Savath Saypadith

240 ບົດຄວາມ

ນຳເອົາໂມເດວ ML ຂອງທ່ານຂຶ້ນສູ່ Web App ທຳອິດດ້ວຍ Streamlit

ໂພສເມື່ອ # Machine Learning # Streamlit # Web Development # Model Deployment

ນຳເອົາໂມເດວ Machine Learning ຂອງທ່ານຂຶ້ນສູ່ Web App ທຳອິດດ້ວຍ Streamlit

ສຳລັບນັກພັດທະນາ ຫຼື ນັກຮຽນຮູ້ສາຍ Data Science ຫຼາຍຄົນໃນລາວ, ຫຼັງຈາກທີ່ເຮົາສາມາດຝຶກສອນ (Train) ໂມເດວ Machine Learning ຂອງເຮົາສຳເລັດແລ້ວໃນ Jupyter Notebook, ຄຳຖາມທີ່ມັກຈະຕາມມາສະເໝີຄື: “ແລ້ວເຮົາຈະເອົາໂມເດວນີ້ໄປໃຫ້ຄົນອື່ນນຳໃຊ້ໄດ້ແນວໃດ?”

ລອງນຶກພາບເບິ່ງວ່າ ທ່ານສ້າງໂມເດວພະຍາກອນລາຄາ ຫຼື ຄຸນນະພາບຂອງເມັດກາເຟປາກຊ່ອງ ທີ່ຊ່ວຍໃຫ້ຊາວກະສິກອນ ຫຼື ເຈົ້າຂອງໂຮງຂົ້ວກາເຟ (SMEs) ສາມາດຕັດສິນໃຈໄດ້ດີຂຶ້ນ. ແຕ່ໃນຄວາມເປັນຈິງ, ພວກເຂົາບໍ່ສາມາດມາເປີດອ່ານ Code Python ຂອງທ່ານໄດ້. ສິ່ງທີ່ພວກເຂົາຕ້ອງການຄື Web Application ທີ່ນຳໃຊ້ງ່າຍ, ມີປຸ່ມກົດ ແລະ ຊ່ອງໃຫ້ປ້ອນຂໍ້ມູນແບບສະດວກ.

ນີ້ຄືຈຸດທີ່ Streamlit ເຂົ້າມາມີບົດບາດສຳຄັນ. Streamlit ແມ່ນ Open-source Python library ທີ່ຊ່ວຍໃຫ້ນັກພັດທະນາສາມາດປ່ຽນ Python script ໃຫ້ກາຍເປັນ Web App ທີ່ສວຍງາມໄດ້ພາຍໃນບໍ່ເທົ່າໃດນາທີ ໂດຍທີ່ທ່ານບໍ່ຈຳເປັນຕ້ອງມີຄວາມຮູ້ເລື່ອງ Frontend (HTML, CSS, JavaScript) ເລີຍ.

ໃນບົດຄວາມນີ້, ເຮົາຈະມາຮຽນຮູ້ວິທີການ Deploy ໂມເດວ ML ຂຶ້ນເປັນ Web App ດ້ວຍ Streamlit ໄປນຳກັນ.


ກຽມຄວາມພ້ອມກ່ອນເລີ່ມຕົ້ນ (Prerequisites)

ເນື່ອງຈາກບົດຄວາມນີ້ຢູ່ໃນລະດັບ Intermediate (ລະດັບກາງ), ຜູ້ອ່ານຄວນມີພື້ນຖານການຂຽນ Python ແລະ ເຂົ້າໃຈການທຳງານເບື້ອງຕົ້ນຂອງ Machine Learning library ເຊັ່ນ scikit-learn ເປັນຕົ້ນ.

ສິ່ງທີ່ທ່ານຕ້ອງມີ:

1. ຕິດຕັ້ງ Libraries ທີ່ຈຳເປັນ

ເປີດ Terminal ຫຼື Command Prompt ຂອງທ່ານຂຶ້ນມາ ແລ້ວພິມຄຳສັ່ງຕໍ່ໄປນີ້:

pip install streamlit pandas scikit-learn

ສ້າງ Web App ສຳລັບພະຍາກອນຄຸນນະພາບກາເຟປາກຊ່ອງ

ສົມມຸດວ່າທ່ານມີໂມເດວຊື່ວ່າ paksong_coffee_model.pkl ທີ່ສາມາດຄາດຄະເນເກຣດຂອງກາເຟອາຣາບິກ້າ ໂດຍອີງໃສ່ ລະດັບຄວາມສູງຈາກໜ້ານ້ຳທະເລ (Altitude) ແລະ ປະລິມານນ້ຳຝົນຕໍ່ປີ (Rainfall).

ໃຫ້ສ້າງໄຟລ໌ Python ໃໝ່ຂຶ້ນມາ ແລ້ວໃສ່ຊື່ວ່າ app.py.

2. ຂຽນ Code ສຳລັບ Streamlit

ໃນໄຟລ໌ app.py, ທ່ານສາມາດຂຽນໂຄ້ດເພື່ອສ້າງໜ້າຕາຂອງເວັບໄດ້ດັ່ງນີ້:

import streamlit as st
import pandas as pd
import pickle

# ກຳນົດຫົວຂໍ້ຂອງ Web App
st.title("ແອັບພະຍາກອນຄຸນນະພາບກາເຟປາກຊ່ອງ ☕")
st.write("ແອັບນີ້ຖືກສ້າງຂຶ້ນມາເພື່ອຊ່ວຍຊາວກະສິກອນ ແລະ ຜູ້ປະກອບການ ໃນການຄາດຄະເນຄຸນນະພາບຂອງເມັດກາເຟ (Grade) ໂດຍອີງໃສ່ຂໍ້ມູນສະພາບແວດລ້ອມການປູກ.")

# ໂຫຼດໂມເດວທີ່ຜ່ານການຝຶກສອນແລ້ວ (Load Pre-trained Model)
@st.cache_resource # ໃຊ້ cache ເພື່ອບໍ່ໃຫ້ລະບົບໂຫຼດໂມເດວໃໝ່ທຸກຄັ້ງທີ່ກົດປຸ່ມ
def load_model():
    with open('paksong_coffee_model.pkl', 'rb') as file:
        model = pickle.load(file)
    return model

model = load_model()

# ==========================
# ສ້າງ Sidebar ສຳລັບປ້ອນຂໍ້ມູນ
# ==========================
st.sidebar.header("ປ້ອນຂໍ້ມູນພື້ນທີ່ປູກ (Input Features)")

# ໃຊ້ Slider ເພື່ອໃຫ້ຜູ້ໃຊ້ເລືອກຄ່າໄດ້ງ່າຍຂຶ້ນ
altitude = st.sidebar.slider("ລະດັບຄວາມສູງຈາກໜ້ານ້ຳທະເລ (ແມັດ)", min_value=800, max_value=1600, value=1200)
rainfall = st.sidebar.slider("ປະລິມານນ້ຳຝົນ (ມິນລີແມັດ/ປີ)", min_value=1000, max_value=3500, value=2000)

# ==========================
# ສ່ວນຂອງການປະມວນຜົນ ແລະ ສະແດງຜົນ
# ==========================
# ເມື່ອຜູ້ໃຊ້ກົດປຸ່ມ "ພະຍາກອນ"
if st.button("ພະຍາກອນຄຸນນະພາບກາເຟ"):
    
    # ສ້າງ DataFrame ຈາກຂໍ້ມູນທີ່ຮັບເຂົ້າມາ ເພື່ອສົ່ງໃຫ້ໂມເດວ
    input_data = pd.DataFrame({
        'altitude': [altitude],
        'rainfall': [rainfall]
    })
    
    # ເຮັດການຄາດຄະເນ (Prediction)
    prediction = model.predict(input_data)
    
    # ສະແດງຜົນຊີ້ແຈງໃຫ້ຜູ້ໃຊ້ເຫັນ
    st.subheader("ຜົນການຄາດຄະເນ:")
    st.success(f"ເກຣດກາເຟຄາດຄະເນຄື: ເກຣດ {prediction[0]}")
    st.info("ໝາຍເຫດ: ຜົນການຄາດຄະເນນີ້ໄດ້ມາຈາກໂມເດວ Machine Learning ທີ່ວິເຄາະຈາກຂໍ້ມູນໃນອະດີດ.")

3. ທົດລອງລັນ Web App (Run Your App)

ເມື່ອທ່ານຂຽນໂຄ້ດສຳເລັດແລ້ວ ແລະ ບັນທຶກໄຟລ໌ app.py ໄວ້ໃນໂຟນເດີດຽວກັບໄຟລ໌ໂມເດວ paksong_coffee_model.pkl ຂອງທ່ານ. ໃຫ້ກັບມາທີ່ Terminal ແລ້ວພິມຄຳສັ່ງ:

streamlit run app.py

ຫຼັງຈາກນັ້ນ Streamlit ຈະທຳການ Start ໂລໂຄຊັບເວີ (Local Server) ແລະ ຈະເປີດ Web Browser ຂຶ້ນມາໂດຍອັດຕະໂນມັດ (ປົກກະຕິຈະຢູ່ທີ່ http://localhost:8501). ພຽງເທົ່ານີ້, ທ່ານກໍຈະເຫັນໜ້າຕາຂອງເວັບແອັບພະຍາກອນກາເຟຂອງທ່ານທີ່ພ້ອມນຳໃຊ້ແລ້ວ!


ຂໍ້ສັງເກດ ແລະ ເຕັກນິກເພີ່ມເຕີມ

Key Takeaways (ສິ່ງທີ່ຄວນຈື່)

ສະຫຼຸບ

ການDEPLOY ໂມເດວ Machine Learning ບໍ່ຈຳເປັນຕ້ອງເປັນເລື່ອງທີ່ຊັບຊ້ອນສະເໝີໄປ. ໃນຍຸກທີ່ທຸລະກິດທ້ອງຖິ່ນໃນລາວເລີ່ມຫັນມາສົນໃຈການນຳໃຊ້ຂໍ້ມູນ (Data-driven) ຫຼາຍຂຶ້ນ ການຮູ້ຈັກເຄືອງມືເຊັ່ນ Streamlit ຈະຊ່ວຍໃຫ້ທ່ານສາມາດນຳສະເໜີຜົນງານ Data Science ຂອງທ່ານໃຫ້ເກີດປະໂຫຍດ ແລະ ເຫັນພາບການໃຊ້ງານຈິງໄດ້ຢ່າງວ່ອງໄວແລະມີປະສິດທິຜົນ.