22 puan yazan xguru 2024-10-07 | 1 yorum | WhatsApp'ta paylaş
  • Çoğu şirket içeride değerli veriler barındırır
    • Müşterilerin ürünle nasıl etkileşime girdiğine dair analiz verileri
    • Ürün içinde gerçekleşen işlemlerin denetim günlükleri (özelliklerin ne zaman etkinleştirildiği anlaşılabilir)
  • Küçük bir startup bile faydalı verilere sahiptir
    • Destek talepleri üzerinden üründe en çok dikkat gerektiren alanlar görülebilir ve buna özellik istekleri de dahildir
  • LLM'lerden (büyük dil modelleri) önce, veriden içgörü çıkarmak zordu
    • Kendi modelinizi eğitmeniz gerekiyordu; bu da özellik mühendisliği ve NLP, model seçimi ve en zoru olan eğitim verisini toplamayı içeriyordu
  • Artık bunu basit bir prompt ile yapmak mümkün
    • Örnek prompt: "Aşağıdaki talepleri şu kategorilere ayırın: Uptime, Security, Bug, Feature Request, Other"
    • Sonuçta basit bir sınıflandırıcı elde edilir ve küçük düzenlemelerle bile yeterli performans sağlar
  • Streamlit kullanarak, herkesin LLM'leri veri kümelerine uygulayıp deney yapabileceği şirket içi araçlar kolayca geliştirilebilir

Neler yapılacak

  • Kullanıcılar şu işlemleri yapabilecek
    • Giriş yapma
    • Prompt yazma: talep sınıflandırma sistemi için
    • Prompt'u bazı örnek veriler üzerinde test edip çıktıyı (hatalar dahil) görme
    • Başkalarının da kullanabilmesi için prompt'u kaydetme

Streamlit'e kısa bir giriş

  • Streamlit, veri uygulamalarını hızlıca geliştirmek için mükemmel bir araçtır
    • Streamlit ile uygulamalar basit kodlarla yazılabilir
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)  
  • Kodun çalıştırılma sonucu: Streamlit otomatik olarak etkileşimli bir frontend oluşturur
  • Kullanıcı text_area içindeki prompt metnini güncellediğinde, Python kodunun geri kalanı otomatik olarak yeniden çalıştırılır

Streamlit'in güçlü yanları

  • Streamlit, dashboard benzeri etkileşimli araçlar oluşturmak için son derece güçlüdür
    • Çeşitli bileşenler kullanılabilir: Pandas veri çerçevelerini tablo olarak render edebilir veya butonlarla eylemleri tetikleyebilirsiniz
    • Harici veri yükleme, gizli bilgi yönetimi ve veri önbellekleme yardımcıları ile gelir; bu da veriyle etkileşimi çok daha güçlü hale getirir

Adım 1: Veriyi yükleme ve görselleştirme

  • Streamlit kullanarak sabit kodlanmış veriler yüklenir ve tablo olarak render edilir
  • .streamlit/secrets.toml dosyası üzerinden Streamlit'e PostgreSQL veritabanına nasıl bağlanacağı öğretilir
  • psycopg2-binary kurulur ve load_data_sample() fonksiyonu PostgreSQL'den veri yükleyecek şekilde güncellenir
  • Streamlit, Snowflake ve Google Sheets gibi çeşitli veri kaynaklarına bağlanabilir
  • Önbellekleme için st.cache_resource genelde bağlantılar için, st.cache_data ise maliyetli sorgu sonuçları için kullanılır

Adım 2: Prompt ile veriyi çalıştırma

  • Kullanıcıdan bir prompt alınır ve yüklenen verilere uygulanır
  • Prompt, {"urgent": false, "categories": ["CategoryA", "CategoryB"]} biçiminde geçerli JSON üretmelidir
  • Veri çerçevesi dönüştürülerek urgent, categories ve error (hata oluştuğunda) sütunları eklenir
  • Zaman ve maliyetten tasarruf etmek için OpenAI çağrıları önbelleğe alınır
  • Prompt'u veri üzerinde yeniden çalıştırmak için bir buton eklenir

Adım 3: Kimlik doğrulama ekleme

  • PropelAuth kullanılarak Streamlit'e kimlik doğrulama eklenir
  • propelauth.py dosyası oluşturulur ve auth nesnesi dışa aktarılır
  • Betiğin en üstünde kullanıcı yüklenir veya betiğin çalışması durdurulur
  • Veri sorgularında kullanıcı kimliği kullanılarak yalnızca erişim yetkisi olan veriler gösterilebilir

Adım 4: Prompt kaydetme

  • Kullanıcının prompt'u kaydedebilmesi için bir buton eklenir
  • Veritabanı bağlantısı yüklenir ve prompt prompts tablosuna eklenir
  • Prompt kaydetmek için kullanıcı kimliği ve prompt parametre olarak iletilir

1 yorum

 
xguru 2024-10-07

Ben de 2020 yılında Streamlit - Python kodunu kolayca özel ML araçlarına dönüştürmek diye kısaca tanıtmıştım; 2022'de ise Snowflake, Streamlit'i 800 milyon dolara satın aldı.

Kısa süre önce Streamlit kullanarak yazdığınız bir araç da Show GN'de bir kez paylaşılmıştı.
MP3 Tag Editor (Python Streamlit +FastAPI) on Docker