> For the complete documentation index, see [llms.txt](https://www.nhasachso.io.vn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.nhasachso.io.vn/truc-tuyen/interactive-blocks-1/tac-gia/nguyen-hong-phuong/sach-cong-cu-ai-python/phan-7-xay-dung-he-thong-ai/streamlit-de-dang-xay-dung-giao-dien-web-cho-mo-hinh-hoc-may.md).

# Streamlit: Dễ dàng xây dựng giao diện web cho mô hình học máy

#### **Streamlit: Dễ dàng xây dựng giao diện web cho mô hình học máy**

***

**🎯 Mục tiêu**

Streamlit giúp các nhà phát triển AI/ML nhanh chóng biến mô hình và dữ liệu thành **giao diện web tương tác** chỉ với vài dòng Python, **không cần HTML/CSS/JS**.

***

#### 🔹 **1. Tại sao chọn Streamlit?**

* **Dễ học, dễ dùng:** Sử dụng thuần Python, không cần kiến thức web.
* **Tích hợp nhanh:** Chạy trực tiếp với mô hình scikit-learn, TensorFlow, PyTorch...
* **Tương tác mạnh mẽ:** Hỗ trợ các widget như slider, textbox, file uploader…
* **Cập nhật tự động:** Mỗi thay đổi trong code sẽ được hiển thị ngay.

***

#### 🛠️ **2. Cách sử dụng cơ bản**

**Ví dụ xây dựng giao diện web để dự đoán loại hoa Iris bằng scikit-learn:**

```python
import streamlit as st
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier

# Load dữ liệu
iris = load_iris()
X = iris.data
y = iris.target

# Train model
model = RandomForestClassifier()
model.fit(X, y)

# Giao diện người dùng
st.title("Dự đoán Loài Hoa Iris 🌸")

sepal_length = st.slider("Sepal length", 4.0, 8.0)
sepal_width = st.slider("Sepal width", 2.0, 4.5)
petal_length = st.slider("Petal length", 1.0, 7.0)
petal_width = st.slider("Petal width", 0.1, 2.5)

prediction = model.predict([[sepal_length, sepal_width, petal_length, petal_width]])

st.write("### Dự đoán:")
st.write(iris.target_names[prediction[0]])
```

👉 Chạy bằng lệnh:

```bash
streamlit run app.py
```

***

#### ⚙️ **3. Các tính năng nổi bật**

* `st.slider`, `st.selectbox`, `st.file_uploader`: Giao diện nhập liệu đơn giản.
* `st.line_chart`, `st.bar_chart`: Trực quan hóa kết quả mô hình.
* `st.cache`: Tăng tốc độ xử lý bằng cách lưu trạng thái mô hình.
* **Realtime update:** Giao diện tự động thay đổi khi người dùng tương tác.

***

#### 📦 **4. Triển khai ứng dụng Streamlit**

* **Cục bộ (local):** Dễ dàng test trên máy cá nhân.
* **Streamlit Cloud:** Deploy trực tuyến miễn phí trên `streamlit.io`.
* **Docker/Kubernetes:** Tích hợp vào hệ thống lớn.
* **Heroku, GCP, AWS, Azure:** Deploy lên nền tảng cloud.

***

#### 📌 **Ứng dụng thực tế**

* Dashboard phân tích dữ liệu
* Giao diện thử nghiệm mô hình học máy
* Công cụ kiểm thử đầu vào đầu ra
* MVP AI sản phẩm chỉ trong vài giờ
