நம்மில் பலரும் பல்வேறு விதமான நிரல்களை எழுதி வருகிறோம். பைத்தான் போன்ற மொழியில் ஒரு நிரலை எழுதி அதை பிற பயனர்கள் பயன்படுத்தும் விதத்தில் வடிவமைப்பது கொஞ்சம் சிக்கலான காரியம் தான். Tkinter நூலகங்கள் இதற்கான தீர்வை வழங்கினாலும் கூட, இணையத்தில் இருந்தபடியே நீங்கள் எழுதிய நிரல்களை உலாவியின் திரைக்கு கொண்டு வருவது தான் ஸ்ட்ரீம்லிட்(Streamlit).
அடிப்படையில் இயற்பியல் தொடர்பான கணக்கீடுகளை மேற்கொள்ளும் வகையிலான ஒரு சிறிய பைத்தான் நூலகத்தை நான் வடிவமைத்து வருகிறேன். ஆனால் அதை நண்பர்களுக்கு வெறும் நிரலாக மட்டும் காட்டினால் அவ்வளவு சுவாரசியமாக இருக்காது. அதை எப்படி? எவ்விதம்? அனைவரும் பார்க்கும் விதத்தில் புரிந்து கொள்ளும் விதத்தில் காண்பிப்பது என யோசித்துக் கொண்டிருந்தேன். கணியம் பொறுப்பாசிரியரின் வழிகாட்டுதலின்படி Streamlit நூலகத்தை முயற்சித்து பார்த்தேன்.
ஸ்ட்ரீம்லிட் என்பது மேக கணிமை அடிப்படையிலான ஒரு இணைய பைத்தான் நூலகம் ஆகும். நீங்கள் உங்களுடைய நிரல்களை கணினியில் எழுதி அவற்றை github உதவி கொண்டு streamlit உடன் இணைக்க முடியும். இதன் மூலம் நீங்கள் எழுதிய நிரல்களை சில வரி கட்டளைகளை மட்டும் கொண்டு GUI வகையில் மாற்றம் செய்துவிடலாம்
அதற்கான எளிய படிநிலைகளை பற்றி பார்ப்போம். முதலில் விரலை வழங்குகிறேன்.
github.com/SRIKALEESWARAR-S/streamlit/blob/main/birthday-app/birthday.py
முதலில் உங்களுடைய லினக்ஸ் கணினியில் முனையத்தை திறக்கவும்.
Sudo apt update என்பதன் மூலம் முதலில் உங்களுடைய கோப்புகள் அனைத்தையும் அப்டேட் செய்து கொள்ளுங்கள்.
பொதுவாகவே பைத்தான் தொடர்பான கோப்புகளை நிறுவுவதற்கு முன்பாக உங்களுடைய கணினியில் Virtual environment இருப்பது சிறப்பு. நான் conda பயன்படுத்துகிறேன். அது பற்றி ஏற்கனவே ஒரு கட்டுரை எழுதி இருக்கிறேன்.
இனிதான் முக்கியமான வேலை ஆரம்பிக்கிறது. முதலில் நான் எழுதியிருக்கக் கூடிய நிரலை இங்கு வழங்கி இருக்கிறேன் அதை பாருங்கள்.
import streamlit as st
from utils import generate_poem
from poems import poems
# MUST be first Streamlit command
st.set_page_config(
page_title=”Birthday Wishes for your loved ones”,
page_icon=””,
layout=”centered”
)
# Background style
st.markdown(“””
<style>
.stApp {
background: linear-gradient(to right, #ffecd2, #fcb69f);
}
</style>
“””, unsafe_allow_html=True)
# Query parameters
params = st.query_params
default_lang = params.get(“lang”, “English”)
default_name = params.get(“name”, “”)
# Title
st.title(“Birthday Wishes Generator”)
st.write(“Developed by Sri Kaleeswarar S – poems by Srikaleeswarar”)
# Language selection
language = st.selectbox(
“Language”,
[“English”, “Tamil”],
index=[“English”, “Tamil”].index(default_lang) if default_lang in [“English”, “Tamil”] else 0
)
# Dynamic relationships
relations = list(poems[language].keys())
default_relation = params.get(“relation”, relations[0])
relation_index = relations.index(default_relation) if default_relation in relations else 0
relation = st.selectbox(“Relationship”, relations, index=relation_index)
# Name input
name = st.text_input(“Enter Name”, value=default_name)
# Generate button
if st.button(“Generate Wishes “):
if not name:
st.warning(“Please enter a name”)
else:
poem = generate_poem(language, relation, name)
st.balloons()
st.markdown(f”””
<h1 style=’text-align: center; color: #ff4b4b;’>
Happy Birthday {name}
</h1>
“””, unsafe_allow_html=True)
st.markdown(“—“)
st.markdown(f”””
<div style=’text-align: center; font-size: 20px; line-height: 1.6;’>
{poem}
</div>
“””, unsafe_allow_html=True)
# Share link
base_url = “https://yourapp.streamlit.app” # Replace after deployment
share_link = f”{base_url}/?lang={language}&relation={relation}&name={name}”
st.markdown(“### Share this link”)
st.code(share_link)
என்னடா இது சாதாரண பைத்தான் நிரல் போல தானே இருக்கிறது என உங்களுக்கு தோன்றலாம். முதலில் streamlit எனும் நூலகத்தை st எனும் பெயரில் நான் நிரல் முழுவதும் பயன்படுத்துகிறேன். உங்களுக்கு விருப்பமான பெயரை நீங்களும் பயன்படுத்திக் கொள்ளலாம் இது அனைவருக்கும் தெரிந்த விஷயம் தான்..
st.write என்பது திரையில் எழுத்துக்களை பிரிண்ட் செய்வதற்கு பயன்படுகிறது.”welcome to kaniyam” என்பதை திரையின் நடுப்பக்கத்தில் காண்பிப்பதற்கு இதை பயன்படுத்தலாம்.
சரி முதலில் இதை எப்படி நிறுவுவது என்பதை பற்றி பார்ப்போம்.
conda create –name st_env python=3.11 -y
உங்களுடைய லினக்ஸ் முனையத்தில் மேல் காணும் நிரலை இயக்கி conda வின் உதவியுடன் மெய்நிகர் கணினி சூழலை ஏற்படுத்திக் கொள்ளவும்.
conda activate st_env
இந்தக் கட்டளையை பயன்படுத்தி மெய்நிகர் சூழலை ஆக்டிவேட் செய்யவும்.
conda install -c conda-forge streamlit
உங்களுடைய மெய்நிகர் சூழலில் streamlit ஐ நிறுவவும்.
அவ்வளவுதான் உங்களுடைய வேலை இந்த இடத்தில் முடிந்துவிட்டது. இனி நிரல் எழுத வேண்டிய பக்கத்திற்கு செல்வோம்.
import streamlit as st
உங்களுடைய நிரலில் streamlit நூலகத்தை அழைத்துக் கொள்ளுங்கள்.
st.set_page_config(page_title=”My App”, layout=”wide”)
Page_config என்பதன் மூலம் பக்கத்தை எவ்வாறு வடிவமைக்க வேண்டும் என்கிற கட்டளையை நீங்கள் வழங்குகிறீர்கள்.
st.title(“பெரிய தலைப்பு”)
st.header(“பிரிவுகளுக்கான தலைப்பு”)
st.subheader(“இதர தலைப்புகள்”)
st.write(“This is a flexible write command for text or objects.like welcome im Sri welcome to kaniyam”)
மேலே காணக்கூடிய இந்த செயல்பாடுகளின் மூலம் பக்கத்தின் தலைப்பு வைப்பது அதற்குள் தகவல்களை எழுதுவது போன்ற வேலைகளை செய்து கொள்ள முடியும். எப்படி செயல்பட்டு இருக்கிறது என்பதை மேலே வழங்கி இருக்கக்கூடிய மாதிரி நிரலின் மூலம் தெரிந்து கொள்ளுங்கள்.
st.table(df)
import pandas as pd
df = pd.DataFrame({“A”: [1, 2], “B”: [3, 4]})
st.dataframe(df)
இந்த நிரலில், ஒரு பட்டியலை திரையில் காண்பிப்பதற்கான நிரல் வழங்கப்பட்டிருக்கிறது.
name = st.text_input(“Enter name”)
உள்ளீடுகளை பெறுவதற்கு இந்த நிரலை பயன்படுத்தலாம்.
st.selectbox(“Choose”, [“Option 1”, “Option 2”])
இந்த நிரலை கொண்டு என்னென்ன வாய்ப்புகளை தேர்ந்தெடுக்க வேண்டும் என்பதை அறிந்து கொள்ள முடியும்.
if st.button(“Click Me”):
st.write(“Button pressed”)
உங்களுக்கு விருப்பமான பட்டன்களை வடிவமைப்பதற்கு இதை பயன்படுத்தலாம்.
col1, col2 = st.columns(2)
col1.write(“Left”)
col2.write(“Right”)
இடது பக்கம் வலது பக்கம் என பிரிவுகளை உருவாக்குவதற்கு இது பயன்படும்..
st.sidebar.write(“Sidebar Content”)
பக்கத்தின் ஓரத்தில் தரவுகளை எழுதுவதற்கு இதை பயன்படுத்தலாம். இத்தோடு முடிந்து விடவில்லை இன்னும் நிறைய செயல்பாடுகள் இருக்கின்றன அனைத்தையும் தெரிந்து கொள்ள அதிகாரப்பூர்வமான இணையதளத்தில் பார்க்கலாம். அதற்கான இணைப்பை கீழே வருகிறேன்.
இதன்பிறகு நீங்கள் எழுதிய நிழலை .py கோப்பாக சேமித்துக் கொள்ளுங்கள்.
streamlit hello
இந்த கட்டளையை முனையத்தில் இயக்கவும். இதன் மூலம் உங்களுக்கு ஒரு கணினிக்கு உட்பட்ட இணைப்பு கிடைக்கும்.(localhost:8501 – இதுபோல)
streamlit run sri_app.py
இதன் மூலம் உங்களுடைய செயலியை இயக்க முடியும். அது உங்களை உலாவிக்கு அழைத்துச் செல்லும். அங்கே உங்களுடைய நிரலை நீங்கள் பரிசோதித்து பார்க்கலாம்.
இதற்கு பதிலாக உங்களுடைய பைத்தான் கோப்புகளை GitHub இல் பதிவேற்றம் செய்துவிட்டு, அங்கிருந்து streamlit தளத்தின் அதிகாரப்பூர்வ இணையதளத்துடன் இணைப்பை ஏற்படுத்துக் கொள்ளுங்கள். அதன் பின்பு நேரடியாக உங்கள் கோப்புகளை தேர்ந்தெடுத்து அங்கிருந்தே இயக்கி பார்க்க முடியும்.
அவ்விதம் செய்யும்போது requriements எனும் பகுதியில் நீங்கள் பயன்படுத்தி இருக்கக்கூடிய நூலகங்களின் பெயர்களை தவறாமல் குறிப்பிடுங்கள். சந்தேகங்கள் இருப்பின் என்னுடைய இணைப்பில் வழங்கப்பட்டிருக்கும் நிரலை பார்வை இடுங்கள்.
github.com/SRIKALEESWARAR-S/streamlit/blob/main/birthday-app/birthday.py
சரி என்னுடைய நிரலில் நான் என்ன செய்திருந்தேன்? கொஞ்சம் சுவாரசியமானதாக இருக்கும். அடிப்படையில் எனக்கும் கவிதைகள் எழுதுவது பிடிக்கும். ஒரு சில கவிதைகளை உங்களுக்கு விருப்பமானவர்களின் பிறந்தநாளுக்கு வாழ்த்தாக அனுப்புவதற்கான ஒரு சிறிய இணையதளமாகவே என்னுடைய நிரல் அமைந்திருக்கிறது. அதில் உங்கள் விருப்பமானவரின் பெயரை உள்ளீடு செய்து, உறவு முறையை தேர்வு செய்தால் அதற்கு ஏற்ற கவிதை தோன்றும். பிறந்த நாளையும் பண்போடும் பணி வோடும் கொண்டாட ஆகச் சிறந்த வழியாக அமையும் என நம்புகிறேன்.
அதற்கான இணைப்பு இதோ: app-gc5q37tdigzeiqekfskc5r.streamlit.app/
24 மணி நேரத்திற்கு ஒருமுறை செயலி செயல்பாட்டை இழந்து விடும். மீண்டும் செயல்படுத்து restart என்பதைக் கொடுத்து சில நிமிடங்கள் காத்திருங்கள்.






அடுத்த கட்டுரையில் சந்திப்போம். தொடர்ந்து கற்போம்.
கட்டுரையாளர்:
ஸ்ரீ காளீஸ்வரர் செ,
நுட்ப எழுத்தாளர்,
முதுகலை இயற்பியல் மாணவர்,
ஸ்காட் கிருத்தவக் கல்லூரி,
நாகர்கோவில் – 03.