
Gradio là gì? Thư viện Python tạo UI nhanh cho mô hình AI/ML
Gradio là thư viện Python mã nguồn mở giúp các nhà phát triển AI/ML xây dựng giao diện web tương tác cho mô hình máy học chỉ trong vài phút, không cần kỹ năng frontend. Thay vì mất thời gian viết HTML/CSS/JavaScript để bọc mô hình, bạn chỉ cần định nghĩa hàm Python dự đoán và Gradio tự động sinh ra UI có sẵn các thành phần (Textbox, Image, Audio, Video, Chatbot, Dataframe…) sẵn sàng dùng.
Cài đặt và Hello World
Yêu cầu: Python 3.10 trở lên. Cài đặt qua pip:
pip install --upgrade gradio
Ví dụ cơ bản nhất — tạo UI cho hàm chào hỏi:
import gradio as gr
def greet(name):
return f"Xin chào {name}!"
demo = gr.Interface(
fn=greet,
inputs="textbox",
outputs="textbox"
)
demo.launch()
Chạy script, Gradio sẽ khởi động server local tại localhost:7860 với giao diện nhập tên và hiển thị lời chào.
30+ thành phần UI sẵn có
Gradio cung cấp hơn 30 thành phần (components) bao phủ hầu hết nhu cầu ML:
- Đầu vào: Textbox, Image, Audio, Video, Slider, Dropdown, Checkbox, Radio, File, ColorPicker, Model3D…
- Đầu ra: Textbox, Image, Audio, Video, Label (classification), Dataframe, JSON, Plot, HTML, Markdown, Gallery…
- Chuyên biệt: Chatbot, ChatMessage, MultimodalTextbox, AnnotatedImage, Video…
Kết hợp linh hoạt: gr.Interface(fn, inputs=[image, slider], outputs=[label, plot]).
Tính năng chia sẻ ứng dụng
Một lệnh duy nhất công khai app ra internet:
demo.launch(share=True)
Gradio tạo URL công khai dạng xxxx.gradio.live hoạt động 7 ngày, không cần deploy server. Phù hợp demo nhanh cho khách hàng, nhóm nghiên cứu, hoặc chia sẻ trên mạng xã hội.
Để hosting vĩnh viễn miễn phí: đẩy code lên Hugging Face Spaces (tích hợp sẵn Gradio, GPU miễn phí cho demo nhẹ).
Gradio Blocks — Layout tùy chỉnh
Khi cần layout phức tạp (sidebar, tabs, multi-step flow, chatbot đa luồng), dùng gr.Blocks():
with gr.Blocks() as demo:
gr.Markdown("## Phân loại hình ảnh")
with gr.Row():
with gr.Column():
img = gr.Image(label="Ảnh đầu vào")
btn = gr.Button("Dự đoán")
with gr.Column():
out_label = gr.Label(label="Kết quả")
out_conf = gr.BarPlot(label="Độ tin cậy")
btn.click(fn=classify, inputs=img, outputs=[out_label, out_conf])
ChatInterface — Tạo chatbot AI trong vài dòng
Dành cho LLM, RAG, hoặc bất kỳ mô hình hội thoại nào:
import gradio as gr
def chat_fn(message, history):
# history là list [(user, assistant), ...]
response = your_llm_chain(message, history)
return response
gr.ChatInterface(fn=chat_fn, title="Trợ lý AI").launch()
Gradio Lite — Chạy hoàn toàn trên trình duyệt
Gradio Lite (archive Sep 2025) cho phép chạy ứng dụng Gradio thuần túy trong browser qua Pyodide/WebAssembly — không cần server Python. Hữu ích cho demo nhẹ, notebook, hoặc embed vào trang tĩnh. Cú pháp:
import { Gradio } from 'https://cdn.jsdelivr.net/npm/@gradio/lite';
const app = await Gradio.mount('#app', 'path/to/app.py');
Hệ sinh thái mở rộng
gradio_client(Python) &@gradio/client(JavaScript) — gọi API từ app khác.gr.Server— đóng gói model + UI thành server độc lập.- Tích hợp sẵn Hugging Face Hub: tải model, dataset, space 1 click.
So sánh Gradio với Streamlit, Chainlit, FastAPI
Thị trường ML UI có nhiều lựa chọn. Tóm tắt ưu nhược điểm:
- Streamlit — tập trung data app, khả năng tùy biến thấp, khó triển khai chatbot.
- Chainlit — chuyên chatbot/RAG, UI đẹp, nhưng phức tạp cấu hình và template.
- Gradio — cân bằng tốt giữa ML components sẵn có (Image, Audio, Video, Dataframe, Plot) và khả năng layout tùy chỉnh qua Blocks. Học curve thấp nhất cho data scientist.
Khi nào nên dùng Gradio?
- Data scientist muốn demo model nhanh cho stakeholder.
- ML engineer cần UI prototype trước khi build production frontend.
- Giáo viên/nghiên cứu sinh chia sẻ kết quả nghiên cứu tương tác.
- Hackathon/PoC: ship UI trong 5 phút thay vì 5 giờ.
Lưu ý bảo mật khi public share
Khi dùng demo.launch(share=True), URL công khai được tạo trên server Gradio tạm thời. Một số lưu ý:
- URL có thời hạn 7 ngày, sau đó hết hạn.
- Không nên chia sẻ dữ liệu nhạy cảm (API key, mật khẩu) qua share URL vì lưu trên server trung gian.
- Đối với ứng dụng sản xuất, dùng Hugging Face Spaces hoặc tự host trên server riêng.
- Kiểm soát truy cập: Gradio 4+ có tùy chọn auth (username/password) và Firebase authentication.
Kết luận
Gradio xóa bỏ rào cản giữa mô hình ML và người dùng cuối. Với 43.4k sao trên GitHub (Apache 2.0), cộng đồng lớn, và tích hợp sâu Hugging Face, nó là lựa chọn chuẩn cho việc “demo model thành UI” trong hệ sinh thái Python AI hiện nay. Dù bạn là data scientist, ML engineer, hay sinh viên — Gradio giúp biến mô hình thành sản phẩm demo chỉ trong vài phút.



Tham khảo thêm:
