albhu commited on
Commit
6e219f7
·
verified ·
1 Parent(s): a99fd8a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +75 -0
app.py CHANGED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ from transformers import pipeline
4
+
5
+ # Oldal konfiguráció
6
+ st.set_page_config(page_title="Orvosi Ügyeleti Beosztás Generáló", layout="wide")
7
+
8
+ st.title("Orvosi Ügyeleti Beosztás Generáló")
9
+ st.write("Töltsd fel az orvosi adatokat tartalmazó Excel fájlt, és generálj beosztást az ügyeletekhez!")
10
+
11
+ # Hugging Face nyelvi modell betöltése
12
+ @st.cache_resource
13
+ def load_model():
14
+ return pipeline("text-generation", model="distilbert-base-multilingual-cased")
15
+
16
+ generator = load_model()
17
+
18
+ # Fájl feltöltése
19
+ uploaded_file = st.file_uploader("Tölts fel egy Excel fájlt", type=["xlsx"])
20
+
21
+ if uploaded_file:
22
+ try:
23
+ # Excel beolvasása
24
+ df = pd.read_excel(uploaded_file)
25
+ st.write("Feltöltött adatok:")
26
+ st.dataframe(df)
27
+
28
+ # Előkészítés
29
+ df["Elérhető napok"] = df["Elérhetőség"].apply(lambda x: x.split(","))
30
+ df["Korlátozások"] = df["Korlátozások"].apply(lambda x: x.split(",") if pd.notna(x) else [])
31
+ foglalt_napok = {}
32
+ beosztas = []
33
+
34
+ # Beosztás generálása
35
+ for nap in range(1, 8): # Példa: 7 napos beosztás
36
+ nap_nev = f"Nap {nap}"
37
+ for index, row in df.iterrows():
38
+ if nap_nev in row["Elérhető napok"]:
39
+ korlatozott = any(
40
+ foglalt_napok.get(nap_nev) == szemely
41
+ for szemely in row["Korlátozások"]
42
+ )
43
+ if not korlatozott:
44
+ foglalt_napok[nap_nev] = row["Név"]
45
+ prompt = f"{row['Név']} ügyel {nap_nev}-n, mert "
46
+ indoklas = generator(prompt, max_length=50, num_return_sequences=1)[0]["generated_text"]
47
+ beosztas.append({
48
+ "Nap": nap_nev,
49
+ "Orvos": row["Név"],
50
+ "Indoklás": indoklas
51
+ })
52
+ break
53
+
54
+ # Eredmény megjelenítése
55
+ beosztas_df = pd.DataFrame(beosztas)
56
+ st.write("Generált Ügyeleti Beosztás:")
57
+ st.dataframe(beosztas_df)
58
+
59
+ # Exportálás Excelbe
60
+ @st.cache_data
61
+ def convert_to_excel(data):
62
+ return data.to_excel(index=False, engine="openpyxl")
63
+
64
+ excel_data = convert_to_excel(beosztas_df)
65
+ st.download_button(
66
+ label="Beosztás letöltése Excelben",
67
+ data=excel_data,
68
+ file_name="ugyeleti_beosztas.xlsx",
69
+ mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
70
+ )
71
+
72
+ except Exception as e:
73
+ st.error(f"Hiba történt a fájl feldolgozása során: {e}")
74
+ else:
75
+ st.info("Tölts fel egy fájlt a kezdéshez.")