22 poin oleh xguru 2024-10-07 | 1 komentar | Bagikan ke WhatsApp
  • Sebagian besar perusahaan memiliki data berharga di dalam organisasi
    • Data analitik tentang bagaimana pelanggan berinteraksi dengan produk
    • Log audit atas aktivitas yang terjadi di dalam produk (dapat mengetahui kapan suatu fitur diaktifkan)
  • Bahkan startup kecil pun memiliki data yang berguna
    • Melalui tiket dukungan, kita bisa melihat bagian produk yang paling membutuhkan perhatian, sekaligus permintaan fitur yang diajukan
  • Sebelum era LLM (large language model), mengekstrak insight dari data adalah hal yang sulit
    • Kita harus melatih model sendiri, yang mencakup feature engineering dan NLP, pemilihan model, serta yang paling sulit, pengumpulan data pelatihan
  • Sekarang hal ini bisa dilakukan dengan prompt sederhana
    • Contoh prompt: "Klasifikasikan tiket berikut ke dalam kategori berikut: Uptime, Security, Bug, Feature Request, Other"
    • Hasilnya, sebuah classifier sederhana dapat dibuat, dan dengan sedikit penyesuaian saja sudah bisa memberikan performa yang memadai
  • Dengan Streamlit, kita bisa dengan mudah membangun alat internal yang memungkinkan siapa pun bereksperimen menerapkan LLM ke dataset

Yang akan dibuat

  • Pengguna dapat melakukan hal-hal berikut
    • Login
    • Menulis prompt: untuk sistem klasifikasi tiket
    • Menguji prompt pada beberapa data sampel dan memeriksa outputnya (termasuk error)
    • Menyimpan prompt agar dapat digunakan oleh orang lain

Pengenalan singkat Streamlit

  • Streamlit adalah alat yang sangat baik untuk membangun aplikasi data dengan cepat
    • Di Streamlit, aplikasi dapat ditulis dengan kode yang sederhana
import streamlit as st  
  
prompt = st.text_area(  
    "Prompt to test (use {text} to indicate where the text should be inserted):",  
    "This is an example prompt:\\n\\n{text}",  
)  
  
prompt_with_data = f"{prompt}".format(  
    text="`Example data to be placed into prompt`"  
)  
  
st.write(prompt_with_data)  
  • Hasil eksekusi kode: Streamlit secara otomatis membuat frontend interaktif
  • Saat pengguna memperbarui teks prompt di text_area, sisa kode Python akan otomatis dijalankan ulang

Fitur kuat Streamlit

  • Streamlit adalah alat yang sangat kuat untuk membuat alat interaktif seperti dashboard
    • Bisa menggunakan berbagai komponen: merender dataframe Pandas sebagai tabel atau memicu aksi melalui tombol
    • Juga menyediakan utilitas untuk memuat data eksternal, mengelola secret, dan caching data, sehingga interaksi dengan data menjadi jauh lebih kuat

Langkah 1: Memuat dan memvisualisasikan data

  • Menggunakan Streamlit untuk memuat data yang di-hardcode dan merendernya sebagai tabel
  • Melalui file .streamlit/secrets.toml, memberi tahu Streamlit cara terhubung ke database PostgreSQL
  • Memasang psycopg2-binary dan memperbarui fungsi load_data_sample() untuk memuat data dari PostgreSQL
  • Streamlit dapat terhubung ke berbagai sumber data seperti Snowflake dan Google Sheets
  • Untuk caching, st.cache_resource umumnya digunakan untuk koneksi, dan st.cache_data untuk hasil query yang mahal

Langkah 2: Menjalankan data menggunakan prompt

  • Menerima prompt dari pengguna lalu menerapkannya ke data yang sudah dimuat
  • Prompt harus menghasilkan JSON valid dalam format {"urgent": false, "categories": ["CategoryA", "CategoryB"]}
  • Mentransformasi dataframe untuk menambahkan kolom urgent, categories, dan error (jika terjadi error)
  • Melakukan cache pada pemanggilan OpenAI untuk menghemat waktu dan biaya
  • Menambahkan tombol untuk menjalankan ulang prompt terhadap data

Langkah 3: Menambahkan autentikasi

  • Menambahkan autentikasi ke Streamlit menggunakan PropelAuth
  • Membuat file propelauth.py dan mengekspor objek auth
  • Memuat pengguna di bagian atas skrip atau menghentikan eksekusi skrip
  • Menggunakan ID pengguna dalam query data sehingga hanya data yang memiliki izin akses yang dapat dilihat

Langkah 4: Menyimpan prompt

  • Menambahkan tombol agar pengguna dapat menyimpan prompt
  • Memuat koneksi database dan menyisipkan prompt ke tabel prompts
  • Menyimpan prompt dengan meneruskan ID pengguna dan prompt sebagai parameter

1 komentar

 
xguru 2024-10-07

Saya pernah memperkenalkannya secara singkat pada 2020 lewat Streamlit - Mudah membuat alat ML kustom dari kode Python, lalu pada 2022 Snowflake mengakuisisi Streamlit seharga $800M.

Belum lama ini, alat yang dibuat menggunakan Streamlit juga sempat muncul di Show GN.
MP3 Tag Editor (Python Streamlit +FastAPI) on Docker