ตอนที่ 1 — แนะนำ Streamlit เครื่องมือสำหรับการทำ Data Dashboard และ Web Application

Phattranit
5 min readMay 14, 2022

--

Streamlit logo
Streamlit, a python library for data visualization (Image Source: Streamlit)

เกือบทุกองค์กรในปัจจุบันนี้มีการใช้ประโยชน์จากข้อมูล ไม่ว่าจะเป็นข้อมูลภายในองค์กรหรือข้อมูลที่มาจากแหล่งอื่น ๆ

โดยทั่วไปแล้ว องค์กรแต่ละองค์กรอาจมีทีมงานภายในที่ทำหน้าที่ในการเข้าถึงและวิเคราะห์ข้อมูลเหล่านั้น ซึ่งทีมที่ทำหน้าที่ตรงนี้ส่วนมากแล้วจำเป็นต้องมีความรู้ทางด้านเทคนิค ด้านคอมพิวเตอร์ รวมถึงความรู้ทักษะความรู้ด้านการวิเคราะห์ข้อมูลเป็นอย่างดี

อย่างไรก็ตาม ในการปฏิบัติงานจริง บ่อยครั้งที่เรามักจะพบว่า ทีมงานที่ไม่ได้มีความรู้ทางด้านเทคนิคต้องการเครื่องมือที่สามารถช่วยอำนวยความสะดวกในกระบวนการทำงานตรงนี้ได้ แทนที่งานทุกอย่างเกี่ยวกับข้อมูลจะตกไปอยู่ที่ทีมเทคนิคหรือทีมนักวิทยาศาสตร์ข้อมูล (data scientists) แต่เพียงอย่างเดียว ทีมงานที่ต้องการใช้ข้อมูลมักจะต้องการแดชบอร์ดที่ไดนามิก ซึ่งสามารถดึงข้อมูล (query) ตามความต้องการของผู้ใช้งานได้ และสามารถนำข้อมูลเหล่านี้มาแสดงผลแบบอินเตอร์แอคทีฟได้ด้วย

แดชบอร์ดหนึ่งแดชบอร์ดมักจะประกอบไปด้วยองค์ประกอบมากมายหลายส่วน โดยหน้าที่หลักของแดชบอร์ดอาจจะสรุปได้เป็น 4 ประการ ดังนี้

  1. วิเคราะห์ (Analyze) — บริหารจัดการและวิเคราะห์ข้อมูลโดยใช้ backend library เช่น Pandas
  2. แสดงผล (Visualize) — สร้างกราฟแสดงผลข้อมูลโดยใช้ graphing library เช่น Bokeh
  3. โต้ตอบ (Interact) — รับข้อมูลที่ผู้ใช้งานป้อนเข้ามา โดยใช้ frontend library เช่น React
  4. รับส่งรีเควส (Serve) — คอยรับรีเควสจากผู้ใช้งานแล้วรีเทิร์นหน้าเว็บเพจกลับไปยังผู้ใช้งาน โดยใช้เว็บเซิฟเวอร์ เช่น Flask

จากหน้าที่หลักสี่ประการข้างต้น ทำให้ในอดีตที่ผ่านมานั้น ผู้ที่รับผิดชอบงานด้านนี้มักจะต้องเสียเวลาส่วนใหญ่ไปกับการพยายามเชื่อมองค์ประกอบต่าง ๆ ของแดชบอร์ดเข้าด้วยกัน ซึ่งเป็นเรื่องที่ค่อนข้างยุ่งยากและใช้เวลาในการพัฒนาเยอะ แต่ในปัจจุบัน เรามี library ใหม่ ๆ อย่างเช่น Streamlit ซึ่งจะมีองค์ประกอบเหล่านี้อยู่ภายในแพ็กเกจหนึ่งแพ็กเกจ พร้อมใช้งานได้ทันที ทำให้สะดวกและประหยัดเวลาในการสร้างแดชบอร์ดไปได้มาก 😍

ส่วนที่ 1 — การแนะนำเครื่องมือ

Streamlit เป็นหนึ่งในเครื่องมือที่ได้รับความนิยมทั้งในกลุ่มนักพัฒนาและกลุ่มผู้ที่ทำงานด้านการวิเคราะห์ข้อมูล data analytics รวมทั้งผู้ที่ทำงานด้านแมคชีนเลิร์นนิ่ง machine learning เนื่องจากการใช้งาน Streamlit ไม่ซับซ้อน มีความยืดหยุ่นค่อนข้างสูง และที่สำคัญคือ สามารถนำไปใช้งานได้อย่างไม่มีค่าใช้จ่าย

1.1 Streamlit คืออะไร

Streamlit คือเฟรมเวิร์กสำหรับเว็บแอปพลิเคชันแบบโอเพนซอร์ส (open-source web-app framework) ที่ช่วยให้ผู้ใช้งานสามารถสร้างเว็บแอปพลิเคชัน รวมไปถึงแดชบอร์ดแบบอินเตอร์แอคทีฟ สำหรับงานด้านวิทยาศาสตร์ข้อมูลและแมคชีนเลิร์นนิ่ง ที่สวยงามได้อย่างรวดเร็ว

ด้วยความที่เป็นโอเพนซอร์สเฟรมเวิร์ก จึงทำให้สามารถใช้งาน Streamlit ได้อย่างไม่มีค่าใช้จ่าย โดยที่ในขั้นตอนการใช้งาน ผู้ใช้งานไม่จำเป็นจะต้องมีประสบการณ์การทำงานด้าน frontend มาก่อน เพียงมีความรู้และทักษะการเขียนโปรแกรมภาษาไพทอน (Python) ก็สามารถเริ่มต้นใช้งาน Streamlit ได้ไม่ยาก เพราะทุกอย่างใน Streamlit อยู่บนพื้นฐานของภาษาไพทอนหรือเรียกง่าย ๆ ว่าเป็น python library นั่นเอง!

1.2 Streamlit ถูกสร้างขึ้นมาบนหลักการพื้นฐานสามประการ คือ

  1. Embrace scripting
  2. Weave in interaction
  3. Deploy instantly

1 — Embrace scripting

การสร้างเว็บแอปพลิเคชันด้วย Streamlit ค่อนข้างง่าย เนื่องจากมี API ทำให้สามารถสร้างแอปได้เพียงใช้โค้ดแค่ไม่กี่บรรทัดเท่านั้น และในระหว่างการพัฒนา เมื่อมีการแก้ไขโค้ด Streamlit จะตรวจสอบหาความเปลี่ยนแปลงที่เกิดขึ้นในซอร์สโค้ด จากนั้นจะทำการรีรันและแสดงผลให้ผู้ใช้ได้เห็นในเว็บเบราว์เซอร์ 👍

2 — Weave in interaction

โดยทั่วไปแล้ว ในแดชบอร์ดจะประกอบวิดเจ็ตหลายวิดเจ็ต ซึ่งแต่ละวิดเจ็ตก็จะแสดงผลข้อมูลใดข้อมูลหนึ่งในรูปแบบที่เหมาะสมต่อการสื่อความหมาย ดังนั้นการสร้างวิดเจ็ตสำหรับแดชบอร์ดในงานทางด้าน data science และ machine learning นั้น ถือเป็นสิ่งสำคัญที่มองข้ามไม่ได้

และส่วนมากแล้ว การพัฒนาวิดเจ็ตแต่ละวิดเจ็ตก็มักจะมีความซับซ้อนและยุ่งยากไม่น้อย ยกตัวอย่างเช่น อาจจะต้องมีการเขียน backend กำหนดรูท ต้องมีการรองรับ HTTP requests และยังต้องมีการเชื่อมต่อกับ frontend ไม่ว่าจะเป็น HTML, CSS, หรือ JavaScript … ค่อนข้างยุ่งยากมากเลยทีเดียว😭

แต่ด้วย Streamlit ผู้ใช้งานสามารถสร้างวิดเจ็ตได้อย่างรวดเร็วและไม่ซับซ้อน โดยที่กระบวนการเพิ่มหรือสร้างวิดเจ็ตก็เหมือนกับการประกาศตัวแปรขึ้นมาอีกหนึ่งตัวแปร (declaring variable) ไม่จำเป็นต้องเขียน backend หรือจัดการกับ frontend ช่วยให้การสร้างวิดเจ็ตเป็นเรื่องง่ายขึ้นมาก

3 — Deploy instantly

ผู้ใช้งานสามารถ deploy แอปพลิเคชันที่สร้างขึ้นได้อย่างทันทีผ่าน Github ทำให้เกิด Continuous Integration และ Continuous Deployment ซึ่งเป็นส่วนหนึ่งของ DevOps Automation

1.3 ข้อดีของ Streamlit

VinothKumar Jothi และ Selvika Kuppudurai ได้สรุปข้อดีของ Streamlit ไว้ดังนี้

  • การสร้างเว็บแอปพลิเคชันใน Streamlit ทำได้โดยการเขียน Python scripts ดังนั้นมันจึงง่ายต่อการศึกษาและใช้งานสำหรับผู้ที่ทำงานด้าน data science เพราะถึงแม้จะไม่มีประสบการณ์ด้าน frontend ก็สามารถพัฒนาเว็บแอปพลิเคชันสำหรับ data science และ machine learning ได้ในเวลาอันสั้น
  • ใช้โค้ดน้อยลงในการสร้างเว็บแอปพลิเคชันที่สวยงาม ใน Streamlit การสร้างเว็บแอปฯใช้โค้ดเพียงไม่กี่บรรทัด ก็สามารถสร้างเว็บแอปฯที่สวยงามออกมาได้
  • ไม่จำเป็นต้องใช้ callback เนื่องจากวิดเจ็ตใน Streamlit ถูกใช้งานเหมือนกับตัวแปรตัวหนึ่ง
  • มีการใช้ data caching ซึ่งช่วยทำให้กระบวนการในการคำนวณ (computation pipelines) ง่ายและรวดเร็วขึ้น
Programming
Image Source: Freepik

ส่วนที่ 2 — องค์ประกอบและคุณสมบัติพื้นฐานของ Streamlit

Python-based

สำหรับผู้ที่ทำงาน backend และผู้ที่มีประสบการณ์การทำงานด้าน front-end น้อย หรือแม้กระทั่งผู้ที่ทำงานเกี่ยวกับการวิเคราะห์ข้อมูล (data analytics) หรือวิทยาศาสตร์ข้อมูล (data science) หลาย ๆ ครั้งที่มักจะพบกับความท้าทายเวลาที่ต้องนำเสนอผลงานให้กับลูกค้าหรือนำเสนอผลลัพธ์ที่ได้จากการวิเคราะห์คำนวณให้ผู้บริหาร/ผู้ที่เกี่ยวข้อง ในการนำเสนอจำเป็นต้องอาศัยทักษะทางด้าน frontend เข้ามาช่วย จึงทำให้เกิดความยุ่งยาก

Streamlit ช่วยลดความท้าทายนี้ลงไป เนื่องจากมันเป็นเครื่องมือที่ช่วยให้ผู้ใช้งานสามารถพัฒนาและสร้างเว็บแอปพลิเคชันสำหรับงานด้านข้อมูล รวมไปถึงงานด้านแมคชีนเลิร์นนิ่ง และอื่น ๆ อีกมากมายได้ง่าย ๆ เพียงแค่ใช้ภาษา Python เท่านั้น ผู้ใช้งานไม่จำเป็นต้องมีความรู้ทางด้าน frontend ก็สามารถสร้าง web apps สำหรับโปรเจกต์ที่ต้องการนำเสนอได้

Fast and Interactive

นอกเหนือจากคุณสมบัติข้อแรกที่กล่าวไปข้างต้น ยังมีคุณสมบัติอีกประการหนึ่งที่ทำให้ Streamlit เป็นที่นิยมอย่างกว้างขวาง นั่นก็คือขั้นตอนในการพัฒนา (development flow) มีความรวดเร็ว (fast) และสามารถใช้งานแบบโต้ตอบ (interactive) ได้

คุณสมบัติข้อนี้ช่วยอำนวยความสะดวกให้กับผู้ใช้งานในขณะสร้าง web applications เป็นอย่างมาก เนื่องจากผู้ใช้งานสามารถมองเห็นความเปลี่ยนแปลงของตัว web applications ได้ทันทีที่บันทึกการเปลี่ยนแปลงของ code ทำให้การแก้ไขและปรับแต่ง apps เป็นเรื่องง่ายขึ้นอย่างชัดเจน ทำให้ชีวิตง่ายขึ้นมาก 😍

Compatible with major Python libraries

นอกจากนี้ Streamlit ยังสามารถใช้งานร่วมกันกับ library อื่น ๆ ได้อีกหลากหลาย library ไม่ว่าจะเป็น bokeh, Altair, PyTorch, OpenCV, pandas, Vega-Lite, matplotlib, NumPy, Scikit Learn, TensorFlow, plotly, Keras, etc. ส่งผลให้การพัฒนาแอปพลิเคชันมีความยืดหยุ่นและสะดวกมากยิ่งขึ้น

How to run Streamlit (Image by Author)

ส่วนที่ 3 — หลักการทำงานเบื้องต้นของ Streamlit

หลังจากที่ได้แนะนำ Streamlit และกล่าวถึงคุณสมบัติสำคัญของ Streamlit ไปแล้วในส่วนที่ 2 ของบทความ ส่วนที่ 3 จะกล่าวถึงวิธีในการ run Streamlit กระบวนการทำงานเบื้องต้นของ Streamlit และ Streamlit Components

3.1 วิธีการในการ run Streamlit

การใช้งาน Streamlit ค่อนข้างง่าย ไม่ยุ่งยาก ไม่ซับซ้อน เนื่องจาก Streamlit เป็น python library ประเภทหนึ่ง การใช้งานจึงเป็นไปในลักษณะเดียวกับการใช้งาน library อื่น ๆ กล่าวคือ Streamlit จะถูก import เข้ามา script ซึ่งเขียนด้วยภาษา python จากนั้น สามารถเรียกใช้งานได้เหมือน python library ทั่วไปได้ตามปกติ ซึ่งวิธีการในการ run Streamlit นั้น สามารถสรุปได้เป็น 3 วิธีหลักด้วยกัน คือ

  1. running with streamlit การรันด้วยคำสั่ง streamlit
  2. running as Python module การรันในลักษณะของไพทอนโมดูล
  3. running with URL การรันด้วย URL

3.1.1 running with streamlit การรันด้วยคำสั่ง streamlit

วิธีแรก คือการรันด้วย Streamlit สามารถทำได้โดย include Streamlit ลงใน Python script ทั่วไป จากนั้นรันสคริปต์ด้วย streamlit run

$ streamlit run your_script.py [--script args]

ทันทีที่รันสคริปต์ Streamlit server จะทำการสร้าง app ขึ้นมา และแสดงผลในแท็บใหม่ของเว็บเบราว์เซอร์ โดยที่ app ดังกล่าวเป็นเหมือนพื้นที่ที่ผู้ใช้งานจะทำการวาดกราฟ ตาราง วิดเจ็ต ข้อความ และอื่น ๆ อีกมากมายลงไป

3.1.2 running as Python module การรันในลักษณะของไพทอนโมดูล

นอกจากนี้ ยังสามารถรัน Streamlit โดยใช้ลักษณะการรันเป็นแบบ Python module ซึ่งวิธีนี้จะสะดวกในกรณีที่มีการตั้งค่า IDE อย่างเช่น PyCharm ในการทำงานกับ Streamlit และสามารถรันด้วยคำสั่งดังแสดงในรูปข้างล่างนี้

$ python -m streamlit run your_script.py

3.1.3 running with URL การรันด้วย URL

อีกหนึ่งวิธีที่สามารถใช้ในการรัน Streamlit คือ การรันด้วย URL โดยวิธีการคือ ส่ง URL เข้าไปในคำสั่ง streamlit run ซึ่งวิธีนี้จะสะดวกสำหรับใช้งานร่วมกันกับ Github Gists

ตัวอย่างคำสั่งดังแสดงต่อไปนี้

$ streamlit run https://raw.githubusercontent.com/streamlit/demo-uber-nyc-pickups/master/streamlit_app.py

3.2 กระบวนการทำงานเบื้องต้นของ Streamlit

การอัปเดตแอปใน Streamlit ทำได้โดยการบันทึกซอร์สไฟล์ (source file) เมื่อมีการบันทึก Streamlit จะทำการตรวจสอบการเปลี่ยนแปลงที่เกิดขึ้น จากนั้นจะมีการถามผู้ใช้งานว่าต้องการจะรีรัน (rerun) แอปพลิเคชันหรือไม่ ถ้าผู้ใช้งานเลือกคำสั่ง Always rerun เมื่อใดก็ตามที่มีการแก้ไขโค้ดและบันทึก Streamlit จะทำการ rerun และอัปเดตให้ผู้ใช้งานเห็นความเปลี่ยนแปลงได้ทันที วิธีนี้ช่วยให้สะดวกต่อการพัฒนายิ่งขึ้น ทำให้สามารถพัฒนาเว็บแอปพลิเคชันได้อย่างรวดเร็วและอินเตอร์แอคทีฟ

3.3 Streamlit Components

โดยปกติแล้ว ผู้ใช้งานสามารถวาดกราฟ ตาราง เขียนข้อความลงในพื้นที่ของแอปพลิเคชันโดยใช้ Streamlit Packages ที่มีอยู่แล้วได้ แต่หากต้องการ widget อื่น ๆ หรือต้องการใช้งาน external modules ผู้ใช้งานก็สามารถเลือกใช้ได้จาก Streamlit Components

Streamlit Components เป็นเสมือน extensions ที่สามารถใช้งานร่วมกับ Streamlit ได้ โดยที่จะมองว่าเป็น python library หนึ่งที่อยู่บนพื้นฐานของ Streamlit ก็ว่าได้ ซึ่ง Streamlit Components มีข้อดีคือ ผู้ใช้งานสามารถพัฒนา Streamlit Components ของตัวเองได้ และนำมันมาใช้ในการสร้าง Streamlit applications ทำให้ตอบสนองความต้องการของผู้ใช้งานที่หลากหลายได้มากขึ้น

อย่างไรก็ตาม บทความนี้จะไม่ได้กล่าวถึงการสร้าง Streamlit Components หากผู้อ่านสนใจ สามารถศึกษารายละเอียดเพิ่มเติมด้วยตัวเองได้ที่ https://docs.streamlit.io/library/components

ที่กล่าวไปข้างต้นทั้งหมดนี้ ก็คือการแนะนำเครื่องมือสำหรับพัฒนาเว็บแอปพลิเคชันที่ชื่อว่า Streamlit รวมไปถึงคุณสมบัติพื้นฐาน และกระบวนการทำงานเบื้องต้นของ Streamlit

ในส่วนต่อไป เราจะมาดูกรณีศึกษาการนำ Streamlit ไปใช้งานจริง

Streamlit Dashboard
Streamlit Dashboard (Image Source: Analytic Vidhya)

ส่วนที่ 4 — กรณีศึกษาที่ถูกนำไปใช้งานจริง

อ้างอิงจากแหล่งข้อมูล Streamlit ได้รับการยอมรับจากหลากหลายบริษัทที่มีชื่อเสียงระดับโลก ไม่ว่าจะเป็น IBM, Intel, Apple, Tesla, JPMorgan Chase & Co., AT&T, Walmart, Uber, Johnson & Johnson, Pepsico, Verison, etc.

นอกจากนี้ ยังมีนักพัฒนาอีกหลายท่านได้นำ Streamlit ไปประยุกต์ใช้ และผลงานบางส่วนก็มีการเผยแพร่ให้บุคคลทั่วไปสามารถเข้าไปชมได้ ยกตัวอย่างเช่น

4.1 การนับจำนวนเซลล์เม็ดเลือดด้วยเทคโนโลยีตรวจจับวัตถุ — Blood Cell Count Object Detection โดย Matthew Brems

Matthew Brems ได้พัฒนาแอปพลิเคชันสำหรับช่วยแยกระหว่างเซลล์เม็ดเลือดขาว (white blood cells) กับเซลล์เม็ดเลือดแดง (red blood cells) จากรูปตัวอย่างเซลล์เม็ดเลือด (blood samples) ซึ่งในแอปพลิเคชันนี้ผู้ใช้งานสามารถตั้งค่า confidence threshold และ overlap threshold เพื่อควบคุมการตรวจจับวัตถุ

Blood Cell Count Object Detection by Matthew Brems
Blood Cell Count Object Detection (Image by Matthew Brems)

4.2 การตรวจจับการสวมใส่หน้ากากโดยการใช้ดีพเลิร์นนิ่งและคอมพิวเตอร์วิชัน— Face Mask Detection with Deep Learning and Computer Vision โดย Crystal Huang

ตั้งแต่ปี 2019 ที่เริ่มมีการระบาดของโรคติดเชื้อไวรัสโคโรนา-19 หรือ COVID-19 ทำให้ผู้คนทั่วโลกต้องปรับตัวอย่างมาก และหนึ่งในพฤติกรรมที่กลายมาเป็นวิถีชีวิตปกติใหม่ หรือ new normal นั่นคือการสวมใส่หน้ากากเพื่อป้องกันการแพร่ระบาดของเชื้อโรค ด้วยเหตุนี้จึงมีการพัฒนาเทคโนโลยีสำหรับตรวจจับการสวมใส่หน้ากากเพื่อช่วยให้เกิดการเฝ้าระวังโรคอย่างมีประสิทธิภาพ

Crystal Huang ได้พัฒนาโมเดลเพื่อตรวจจับใบหน้าและตรวจสอบว่ามีการสวมใส่หน้ากากหรือไม่โดยใช้เทคนิค Deep Learning และ Computer Vision ซึ่งการพัฒนาโมเดลมีการใช้ libraries อื่น ๆ ร่วมด้วย ไม่ว่าจะเป็น pandas, numpy, Keras, TensorFlow, OpenCV, Matplotlib, Seaborn และได้นำเสนอผลของการพัฒนาโมเดลดังกล่าวในรูปแบบเว็บแอปพลิเคชันที่สร้างด้วย Streamlit

จากตัวอย่างกรณีศึกษานี้ จะเห็นได้ว่า Streamlit มีความยืดหยุ่นสูง สามารถใช้ร่วมกับ ไลบรารีทางด้านวิทยาศาสตร์ข้อมูล (data science libraries) ได้หลากหลาย ทำให้การสร้างเว็บแอปฯเพื่อนำเสนอผลลัพธ์ที่ได้จากการวิเคราะห์ข้อมูล หรือผลการพัฒนาโมเดลทางแมคชีนเลิร์นนิ่งเป็นเรื่องง่ายขึ้นมาก

Face Mask Detection (Image by Huang)

สรุป

ประเด็นสำคัญที่ควรทราบเกี่ยวกับ Streamlit — เครื่องมือสำหรับการทำแดชบอร์ดและเว็บแอปพลิเคชัน

การใช้ประโยชน์จากข้อมูลที่เพิ่มสูงขึ้นส่งผลให้ความต้องการใช้งานแดชบอร์ดแบบอินเตอร์แอคทีฟเพิ่มขึ้นอย่างเห็นได้ชัด ในแต่ละองค์กรมักจะมีทีมงานอย่างน้อยหนึ่งทีม เช่น ทีมเทคนิคหรือทีมนักวิทยาศาสตร์ข้อมูล สำหรับทำงานในส่วนนี้โดยเฉพาะ อย่างไรก็ตาม ในการใช้งานจริงนั้นมักจะมีทีมอื่น ๆ ภายในองค์กรที่อาจจะไม่ได้มีความรู้ทางด้านเทคนิคมากนัก แต่ต้องการใช้ประโยชน์จากข้อมูลในรูปแบบของแดชบอร์ด โดยที่แดชอบอร์ดนั้นจะต้องตอบสนองความต้องการในการดึงข้อมูลบางอย่างที่เฉพาะเจาะจงตามความต้องการของผู้ใช้งาน และแสดงผลข้อมูลเหล่านั้นได้ทันที

ที่ผ่านมา กระบวนการสร้างแดชบอร์ดค่อนข้างยุ่งยากและใช้เวลามาก เนื่องจากจะต้องมีการเชื่อมโยงองค์ประกอบต่าง ๆ ที่สำคัญของแดชบอร์ดเข้าด้วยกัน ไม่ว่าจะเป็น ส่วนการวิเคราะห์ข้อมูล ส่วนการแสดงผล ส่วนการโต้ตอบ และเซิฟเวอร์ โดยที่แต่ละส่วนก็มักจะถูกสร้างด้วยเครื่องมือที่แตกต่างกันออกไป ทำให้กระบวนการในการเชื่อมโยงแต่ละส่วนเข้าด้วยกันจึงยุ่งยากและซับซ้อน

แต่ในปัจจุบัน ได้มีการพัฒนา library ที่รวบรวมองค์ประกอบที่สำคัญเหล่านี้ไว้ในแพ็กเกจหนึ่งแพ็กเกจ ทำให้การพัฒนาแดชบอร์ด รวมไปถึงเว็บแอปพลิเชัน เป็นเรื่องง่ายและรวดเร็วขึ้น โดยที่ในช่วงไม่กี่ปีที่ผ่านมานี้ Streamlit ได้ชื่อว่าเป็นหนึ่งในเครื่องมือสำหรับการทำแดชบอร์ดที่ได้รับความนิยมสูงมาก เนื่องจากมันใช้งานง่าย และอยู่บนพื้นฐานของภาษาไพทอน ซึ่งเป็นภาษาที่ได้รับความนิยมท่ามกลางกลุ่มนักพัฒนาและนักวิเคราะห์ข้อมูลอีกด้วย

อาจกล่าวโดยสรุปได้ว่า Streamlit เป็น open source framework สำหรับการพัฒนา web applications ที่ใช้ในงานด้าน data analytics และ machine learning โดย Streamlit มีลักษณะเป็น python library การใช้งานจึงค่อนข้างง่ายและสะดวกกับโปรเจกต์ที่มีการใช้ภาษา python ในการพัฒนาอยู่แล้ว ด้วยเหตุนี้ Streamlit จึงเป็นอีกหนึ่งเครื่องมือที่ถูกใช้งานแพร่หลายและกลายเป็นที่นิยมอย่างรวดเร็วในปัจจุบัน

Resources and links

[1] “Components — Streamlit Docs.” https://docs.streamlit.io/library/components (accessed Apr. 28, 2022).

[2] M. Schmitt, “Data dashboarding tools | Streamlit v.s. Dash v.s. Shiny vs. Voila vs. Flask vs. Jupyter.” https://www.datarevenue.com/en-blog/data-dashboarding-streamlit-vs-dash-vs-shiny-vs-voila (accessed Apr. 28, 2022).

[3] M. Brems, “Blood Cell Count Object Detection.” https://share.streamlit.io/matthewbrems/streamlit-bccd (accessed Apr. 28, 2022).

[4] “Streamlit Examples That Motivates Data Scientists to Create Web Apps — The Analytics Club.” https://www.the-analytics.club/streamlit-dashboard-examples (accessed Apr. 28, 2022).

[5] C. Huang, “Face Mask Detection with Deep Learning and Computer Vision,” Jan. 13, 2021. https://crystaldatasy.medium.com/face-mask-detection-with-deep-learning-and-computer-vision-94a965806ab3 (accessed Apr. 28, 2022).

[6] “Components — Streamlit Docs.” https://docs.streamlit.io/library/components (accessed Apr. 28, 2022).

[7] “Streamlit • The fastest way to build and share data apps.” https://streamlit.io/ (accessed Apr. 28, 2022).

[8] V. Jothi and S. Kuppudurai, “Introduction to Streamlit.” https://www.latentview.com/data-engineering-lp/introduction-to-streamlit/ (accessed Apr. 28, 2022).

--

--