Hướng dẫn dùng streamlit tutorial python

Streamlit là một open-source Python lib, nó giúp ta dễ dàng tạo một web app cho MachineLearning và Data Science. Đối với một người có rất ít kiến thức về HTML, CSS, JavaScript thì đây có lẽ là công cụ rất phù hợp với mình để demo các sản phẩm AI. Chúng ta có thể test cục bộ được, sau đó muốn deploy lên internet có thể dùng Heroku, Streamlit hay Ngrok đều được cả. Trên trang của streamlit có câu slogan:

Show

The fastest way to build and share data apps

Trong bài này chúng ta sẽ đi tìm hiểu sơ bộ trước về streamlit, bài sau chúng ta sẽ thử deploy model.

Cài đặt

Sau khi cài đặt xong có thể chạy ngay câu lệnh sau, nó đưa chúng ta tới tab với đường link http://localhost:8501/

Ở đây chúng ta có thể xem một số demo của streamlit có sẵn.

Sau khi cài xong bạn có thể chạy ứng dụng với cú pháp sau:

Ở đây app.py là file bạn muốn chạy. Trước đây để làm trang web phần giao diện sẽ được thực hiện thông qua HTML, CSS, để deploy model có thể dùng Flask, Django hay FastAPI. Tuy nhiên với Streamlit mọi thứ đơn giản hơn rất nhiều, thuần Python, giúp chúng ta không phải học thêm nhiều thứ mà vẫn có thể deploy được sản phẩm.

Ngay ở trong trang chủ của streamlit có rất nhiều demo về các lĩnh vực, chúng ta có thể tham khảo tại đó.

Một số tính năng qua ví dụ

Thử xem ví dụ dưới đây

import streamlit as st
import pandas as pd
import numpy as np

# app title
st.title("My first deployed DL model")
st.header("Header đây chứ đâu")
st.text("Đây là text")
st.markdown('Markdown đây **anh em ơi**')
st.text("Còn dưới đây là latex")
st.latex(r''' a + b = 3''')
# Viết một cái gì đó
st.write(12345)

# Hiển thị code luôn
code = '''def(hello):
        print("Hello world!)'''
st.code(code, language='python')

st.text("Hiển thi luôn cả chart")
hart_data = pd.DataFrame(np.random.randn(20, 3), columns=['a', 'b', 'c'])
st.line_chart(hart_data)

Hướng dẫn dùng streamlit tutorial python

Ngoài việc hiển thị thông tin streamlit cũng cho chúng ta tương tác thông qua một số classes như:

  • Sử dụng checkbox

    if st.checkbox('Show text'):
          st.write("This is a text")
    

  • Sử dụng selectbox

    option = st.selectbox('Select one', ('The option 1', 'The option 2'))
    

Còn rất nhiều tính năng hay ho các bạn có thể xem thêm tại trang chủ.

Trên đây mình đã giới thiệu sơ qua về streamlit một công cụ đang được cộng đồng AI rất thích. Streamlit giúp chúng ta demo nhanh chóng các dự án nhỏ không cần custom quá nhiều, bạn có thể dành thời gian tập trung cho các công việc khác quan trọng hơn. Nếu muốn hơn thế nữa hãy sử dự Flask hoặc Django kết hợp cùng HTML, CSS, Jasvasript để xây dựng web apps cho riêng mình.

Tài liệu tham khảo
  1. https://streamlit.io/

Demo: fullstackstation.com/streamlit-components-demo

Streamlit là gì

Streamlit là công cụ được xây dựng với mục đích dành cho Machine Learning Engineer, tạo ra giao diện web như Jupyter notebook. Điểm đặc biệt khác với Jupyter notebook là Streamlit không phải hiển thị code, giúp cho bạn có thể tạo ra sản phẩm có tính hoàn thiện cao.

Trong bài “Tại sao nên học Python“, mình đã giới thiệu về ưu điểm của Python. Bài này sẽ giới thiệu thêm 1 ứng dụng khác. Về cơ bản có thể hiển thị kết quả từ python ra web, nên có thể sử dụng để tạo app bất kỳ với python.

Hướng dẫn dùng streamlit tutorial python
Hướng dẫn dùng streamlit tutorial python
Hướng dẫn dùng streamlit tutorial python
Hướng dẫn dùng streamlit tutorial python
Hướng dẫn dùng streamlit tutorial python

Cache

Hướng dẫn dùng streamlit tutorial python

Cache được lưu trữ theo mỗi trạng thái của thiết lập điều này giúp cho ứng dụng không cần phải chạy lại cho từng người dùng khác nhau.

Để đảm bảo được cache hoạt động đúng, thì trong hàm sử dụng cache, không được dùng các hàm của streamlit. Các chức năng có thể nên dùng cache như: tải file, xử lý tính toán cho kết quả.

Comments

Bài liên quan:

  1. [Machine Learning] Giới thiệu PredictionIO
  2. GraphQL là gì – Áp dụng như thế nào?
  3. Lập trình ứng dụng di dộng từ công nghệ của Facebook
  4. Kinh nghiệm dành cho người mới bắt đầu lập trình Python

Machine learning