streamlit

streamlit เป็นชุดคำสั่งเสริมสำหรับภาษา Python ที่ใช้แนวคิดเชิงวัตถุสำหรับการสร้างเว็บแอปพลิเคชัน (web applications) โดยไม่ต้องมีความรู้ด้านการพัฒนาเว็บเลย ช่วยให้สามารถสร้างเว็บแอปพลิเคชันที่สามารถโต้ตอบกับผู้ใช้ได้ในเวลาอันสั้น

การแสดงข้อมูล

  • st.write(): ใช้สำหรับแสดงข้อมูลต่าง ๆ บนเว็บแอปพลิเคชัน

  • st.title(), st.header(), st.subheader(): ใช้สำหรับแสดงข้อความที่เป็นหัวเรื่อง

การแสดงรูปภาพและวิดีโอ

  • st.image(): ใช้สำหรับแสดงรูปภาพ

  • st.video(): ใช้สำหรับแสดงวิดีโอ

การรับข้อมูลจากผู้ใช้

การเขียนโค้ด Markdown:

  • st.markdown(): ใช้สำหรับแสดงข้อความที่ใช้ไฟล์ Markdown

การสร้างกราฟ

การเรียกใช้ฟังก์ชันหลังจากการเปลี่ยนแปลง

  • st.button().on_click(): ใช้สำหรับระบุฟังก์ชันที่จะเรียกเมื่อปุ่มถูกคลิก

การจัดหน้าเว็บแอปพลิเคชัน

  • st.sidebar: ใช้สำหรับเพิ่มส่วน sidebar ที่ใช้เก็บวิดเจ็ตหรือข้อมูลเสริม

  • st.columns(): ใช้สำหรับแบ่งหน้าจอเป็นคอลัมน์

  • st.tabs(): ใช้สำหรับแบ่งหน้าจอเป็นแทป

  • st.expander(): ใช้สำหรับขยายพื้นที่แสดงผล

  • st.container(): ใช้สำหรับจัดกลุ่มแสดงผล

  • st.empty(): ใช้สำหรับแสดงพื้นที่เปล่า

การใช้ Session State

  • st.session_state: ใช้สำหรับเก็บข้อมูลที่ต้องการให้เก็บไว้ระหว่าง session

การบันทึกข้อมูล:

  • st.cache_data(): ใช้สำหรับบันทึกข้อมูลที่ถูกประมวลผลเพื่อลดเวลาการโหลดข้อมูลใน session ถัดไป

ตัวอย่าง

  • ตัวอย่างที่ 1

import streamlit

print(streamlit.__version__)
  • ตัวอย่างที่ 2

import streamlit

h = streamlit.header('My Web Site on Diffusion')
s = streamlit.subheader('เว็บไซต์ส่วนตัวของฉานน')
p = streamlit.write('เว็บไซต์นี้แลกมาด้วยหยาดเหงื่อและความอดทน')
banner = streamlit.image('https://picsum.photos/800/250')
b = streamlit.button('click me')
  • ตัวอย่างที่ 3

import streamlit as st
h = st.header('My Web Site on Diffusion')
s = st.subheader('เว็บไซต์ส่วนตัวของฉานน')
p = st.write('เว็บไซต์นี้แลกมาด้วยหยาดเหงื่อและความอดทน')
#banner = st.image('https://picsum.photos/800/250')
text = st.text_input('prompt: ')
if text:
    # text
    st.image('https://picsum.photos/400/200')
    b = st.button('จะไปต่อหรือ...')
  • ตัวอย่างที่ 4

import torch
import streamlit as st
from PIL import Image
from diffusers import DiffusionPipeline as DP
h = st.header('Diffusion.AI')
s = st.subheader('เว็บไซต์สำหรับแปลงข้อความเป็นภาพ')
p = st.write('เว็บไซต์นี้แลกมาด้วยหยาดเหงื่อและความอดทน')
text = st.text_input('prompt: ')
if text:
    dp = DP.from_pretrained(
            "runwayml/stable-diffusion-v1-5", 
            torch_dtype=torch.float16)
    image_data = dp(text).images[0]
    image = Image.fromarray(image_data)
    image.show()
    #st.image('https://picsum.photos/400/200')
    b = st.button('จะไปต่อหรือ...')