Engineer786 commited on
Commit
dfe73bd
Β·
verified Β·
1 Parent(s): 92ab38b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -24
app.py CHANGED
@@ -6,14 +6,15 @@ from scraper import scrape_tariffs
6
  from transformers import AutoTokenizer, AutoModel
7
  import torch
8
 
9
- # Load pre-trained transformer model for embeddings directly
10
  tokenizer = AutoTokenizer.from_pretrained("sentence-transformers/all-MiniLM-L6-v2")
11
  model = AutoModel.from_pretrained("sentence-transformers/all-MiniLM-L6-v2")
12
 
13
- # Initialize Streamlit components
14
- st.title("Electricity Bill Estimator")
15
- st.sidebar.header("User Input")
16
 
 
17
  tariff_urls = {
18
  "IESCO": "https://iesco.com.pk/index.php/customer-services/tariff-guide",
19
  "FESCO": "https://fesco.com.pk/tariff",
@@ -22,40 +23,58 @@ tariff_urls = {
22
  "LESCO": "https://www.lesco.gov.pk/ElectricityTariffs",
23
  "PESCO": "https://pesconlinebill.pk/pesco-tariff/",
24
  "QESCO": "http://qesco.com.pk/Tariffs.aspx",
25
- "TESCO": "https://tesco.gov.pk/index.php/electricity-traiff"
26
  }
27
 
28
  def show_tariff_input():
29
- # Display tariff rates selection
30
- tariff_data = pd.read_csv("data/tariffs.csv")
31
- tariff_types = tariff_data["category"].unique()
32
- tariff_choice = st.selectbox("Select your tariff category:", tariff_types)
33
- st.write(f"Selected Tariff: {tariff_choice}")
 
 
 
 
 
34
 
35
  def scrape_data():
36
- # Scraping tariff data using provided URLs
 
 
 
37
  scrape_tariffs(list(tariff_urls.values()))
 
38
 
39
- # Streamlit actions
40
- if st.sidebar.button("Scrape Data"):
41
  scrape_data()
42
 
43
- # User inputs for appliance and usage time (replace placeholders as needed)
44
- appliance_load = st.number_input("Enter appliance load in watts", min_value=10, max_value=5000, value=1000)
45
- usage_time = st.number_input("Enter usage time (in hours)", min_value=1, max_value=24, value=5)
 
 
 
 
 
 
 
46
 
47
- # Placeholder for electricity bill calculation and output display
48
  if appliance_load and usage_time:
49
- bill_amount = appliance_load * usage_time * 0.25 # Add your own calculation based on tariffs
50
- st.write(f"Your electricity bill: {bill_amount} PKR")
51
 
52
- # Example of using Hugging Face's transformers directly to encode queries
53
- user_query = st.text_input("Ask about your tariff or appliance:")
 
54
  if user_query:
55
- # Tokenizing the query and calculating embeddings
56
  inputs = tokenizer(user_query, return_tensors="pt", padding=True, truncation=True)
57
  with torch.no_grad():
58
  outputs = model(**inputs)
59
  embeddings = outputs.last_hidden_state.mean(dim=1).squeeze().numpy()
60
-
61
- st.write(f"Query embedding (for further processing): {embeddings}")
 
 
6
  from transformers import AutoTokenizer, AutoModel
7
  import torch
8
 
9
+ # Load pre-trained transformer model for query embeddings
10
  tokenizer = AutoTokenizer.from_pretrained("sentence-transformers/all-MiniLM-L6-v2")
11
  model = AutoModel.from_pretrained("sentence-transformers/all-MiniLM-L6-v2")
12
 
13
+ # Streamlit App: Electricity Bill Estimator
14
+ st.title("πŸ”Œ Electricity Bill Estimator")
15
+ st.sidebar.header("βš™οΈ User Input")
16
 
17
+ # Tariff URLs for scraping
18
  tariff_urls = {
19
  "IESCO": "https://iesco.com.pk/index.php/customer-services/tariff-guide",
20
  "FESCO": "https://fesco.com.pk/tariff",
 
23
  "LESCO": "https://www.lesco.gov.pk/ElectricityTariffs",
24
  "PESCO": "https://pesconlinebill.pk/pesco-tariff/",
25
  "QESCO": "http://qesco.com.pk/Tariffs.aspx",
26
+ "TESCO": "https://tesco.gov.pk/index.php/electricity-traiff",
27
  }
28
 
29
  def show_tariff_input():
30
+ """
31
+ Displays a dropdown menu for tariff categories loaded from a CSV file.
32
+ """
33
+ try:
34
+ tariff_data = pd.read_csv("data/tariffs.csv")
35
+ tariff_types = tariff_data["category"].unique()
36
+ tariff_choice = st.selectbox("Select your tariff category:", tariff_types)
37
+ st.write(f"βœ… Selected Tariff: **{tariff_choice}**")
38
+ except FileNotFoundError:
39
+ st.error("⚠️ Tariff data not found. Please ensure 'data/tariffs.csv' exists.")
40
 
41
  def scrape_data():
42
+ """
43
+ Scrapes tariff data from the provided URLs.
44
+ """
45
+ st.info("πŸ”„ Scraping tariff data... Please wait.")
46
  scrape_tariffs(list(tariff_urls.values()))
47
+ st.success("βœ… Tariff data scraping complete.")
48
 
49
+ # Sidebar: Scrape Tariff Data
50
+ if st.sidebar.button("Scrape Tariff Data"):
51
  scrape_data()
52
 
53
+ # User Inputs for Electricity Usage
54
+ st.subheader("πŸ’‘ Electricity Usage Input")
55
+ appliance_load = st.number_input(
56
+ "Enter appliance load in watts:",
57
+ min_value=10, max_value=5000, value=1000
58
+ )
59
+ usage_time = st.number_input(
60
+ "Enter daily usage time (in hours):",
61
+ min_value=1, max_value=24, value=5
62
+ )
63
 
64
+ # Electricity Bill Calculation
65
  if appliance_load and usage_time:
66
+ bill_amount = appliance_load * usage_time * 0.25 # Simplified calculation
67
+ st.write(f"πŸ’΅ Estimated Electricity Bill: **{bill_amount:.2f} PKR**")
68
 
69
+ # Query Input for Tariff Details
70
+ st.subheader("🧠 Query About Tariff or Appliance")
71
+ user_query = st.text_input("Enter your query:")
72
  if user_query:
73
+ # Generate embeddings for the user query
74
  inputs = tokenizer(user_query, return_tensors="pt", padding=True, truncation=True)
75
  with torch.no_grad():
76
  outputs = model(**inputs)
77
  embeddings = outputs.last_hidden_state.mean(dim=1).squeeze().numpy()
78
+
79
+ st.write(f"πŸ” Query Embedding (for further processing):")
80
+ st.code(embeddings)