MatteoScript commited on
Commit
ec2e975
1 Parent(s): 66ea653

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -3
app.py CHANGED
@@ -1,5 +1,8 @@
1
  import streamlit as st
2
  from chat_client import chat
 
 
 
3
  import time
4
  import os
5
  from dotenv import load_dotenv
@@ -16,6 +19,7 @@ import PyPDF2
16
  import pytesseract
17
  from PIL import Image
18
  from youtube_transcript_api import YouTubeTranscriptApi
 
19
 
20
  load_dotenv()
21
  URL_APP_SCRIPT = os.getenv('URL_APP_SCRIPT')
@@ -29,7 +33,18 @@ option_personalizzata = {'Personalizzata': {'systemRole': 'Tu sei BONSI AI, il m
29
  'tipo': '',
30
  'RAG': False}
31
  }
32
-
 
 
 
 
 
 
 
 
 
 
 
33
  # ----------------------------------------------------------- Interfaccia --------------------------------------------------------------------
34
  st.set_page_config(page_title="Bonsi A.I.", page_icon="🏫")
35
 
@@ -73,6 +88,9 @@ def init_state() :
73
  if "numero_generazioni" not in st.session_state:
74
  st.session_state.numero_generazioni = 1
75
 
 
 
 
76
  if "testo_documenti" not in st.session_state:
77
  st.session_state.testo_documenti = ''
78
 
@@ -101,7 +119,7 @@ def init_state() :
101
  options = requests.get(URL_PROMPT).json()
102
  st.write("Inizializzazione Documenti")
103
  documenti = requests.get(URL_DOCUMENTI).json()
104
- st.session_state.options = {**option_personalizzata, **options}
105
  st.session_state.documenti = documenti
106
  st.session_state.loaded_data = True
107
  status.update(label="Caricamento Completato", state="complete", expanded=False)
@@ -142,6 +160,10 @@ def sidebar():
142
  st.session_state.systemRole = st.text_area("Descrizione", st.session_state.systemRole, help='Ruolo del chatbot e descrizione dell\'azione che deve svolgere')
143
  st.session_state.systemStyle = st.session_state.selected_option.get('systemStyle', '')
144
  st.session_state.systemStyle = st.text_area("Stile", st.session_state.systemStyle, help='Descrizione dello stile utilizzato per generare il testo')
 
 
 
 
145
  st.session_state.rag_enabled = st.session_state.selected_option.get('tipo', '')=='RAG'
146
  if st.session_state.selected_option_key == 'Decreti':
147
  st.session_state.top_k = st.slider(label="Documenti da ricercare", min_value=1, max_value=20, value=4, disabled=not st.session_state.rag_enabled)
@@ -322,6 +344,14 @@ def inserisci_istruzioni(prompt_originale):
322
  with st.spinner("Ricerca nei Decreti...."):
323
  time.sleep(1)
324
  st.session_state.instruction, links = gen_augmented_prompt(prompt=prompt_originale, top_k=st.session_state.top_k)
 
 
 
 
 
 
 
 
325
  with st.spinner("Generazione in corso...") :
326
  time.sleep(1)
327
  #st.session_state.instruction = instruction_originale + '\n----------------------------------------------\n' + st.session_state.instruction
@@ -381,7 +411,7 @@ if prompt := st.chat_input("Chatta con BonsiAI..."):
381
  with st.chat_message("assistant"):
382
  placeholder = st.empty()
383
  full_response = stream_handler(chat_stream, placeholder)
384
- if st.session_state.rag_enabled or st.session_state.cerca_online:
385
  show_source(links)
386
  if st.session_state.options.get(st.session_state.selected_option_key, {})["tipo"]=='DOCUMENTO':
387
  with st.expander("Mostra Documento") :
 
1
  import streamlit as st
2
  from chat_client import chat
3
+ from google_function import leggi_gmail
4
+ from google_function import scrivi_bozza_gmail
5
+ from google_function import leggi_calendario_google
6
  import time
7
  import os
8
  from dotenv import load_dotenv
 
19
  import pytesseract
20
  from PIL import Image
21
  from youtube_transcript_api import YouTubeTranscriptApi
22
+ import webbrowser
23
 
24
  load_dotenv()
25
  URL_APP_SCRIPT = os.getenv('URL_APP_SCRIPT')
 
33
  'tipo': '',
34
  'RAG': False}
35
  }
36
+ option_leggiemail = {'Leggi Gmail': {'systemRole': 'Tu sei BONSI AI, il mio assistente personale della scuola superiore del Bonsignori. Effettua l operazione richiesta sulla base delle seguenti email: ',
37
+ 'systemStyle': 'Firmati sempre come BONSI AI. (scrivi in italiano)',
38
+ 'instruction': '',
39
+ 'tipo': 'EMAIL',
40
+ 'RAG': False}
41
+ }
42
+ option_leggicalendar = {'Leggi Calendar': {'systemRole': 'Tu sei BONSI AI, il mio assistente personale della scuola superiore del Bonsignori. Effettua l operazione richiesta sulla base dei seguenti eventi di calendario: ',
43
+ 'systemStyle': 'Firmati sempre come BONSI AI. (scrivi in italiano)',
44
+ 'instruction': '',
45
+ 'tipo': 'CALENDAR',
46
+ 'RAG': False}
47
+ }
48
  # ----------------------------------------------------------- Interfaccia --------------------------------------------------------------------
49
  st.set_page_config(page_title="Bonsi A.I.", page_icon="🏫")
50
 
 
88
  if "numero_generazioni" not in st.session_state:
89
  st.session_state.numero_generazioni = 1
90
 
91
+ if "numero_elementi" not in st.session_state:
92
+ st.session_state.numero_elementi = 10
93
+
94
  if "testo_documenti" not in st.session_state:
95
  st.session_state.testo_documenti = ''
96
 
 
119
  options = requests.get(URL_PROMPT).json()
120
  st.write("Inizializzazione Documenti")
121
  documenti = requests.get(URL_DOCUMENTI).json()
122
+ st.session_state.options = {**option_personalizzata, **option_leggiemail, **option_leggicalendar, **options}
123
  st.session_state.documenti = documenti
124
  st.session_state.loaded_data = True
125
  status.update(label="Caricamento Completato", state="complete", expanded=False)
 
160
  st.session_state.systemRole = st.text_area("Descrizione", st.session_state.systemRole, help='Ruolo del chatbot e descrizione dell\'azione che deve svolgere')
161
  st.session_state.systemStyle = st.session_state.selected_option.get('systemStyle', '')
162
  st.session_state.systemStyle = st.text_area("Stile", st.session_state.systemStyle, help='Descrizione dello stile utilizzato per generare il testo')
163
+ if st.session_state.selected_option["tipo"]=='EMAIL':
164
+ st.session_state.numero_elementi = st.slider(label="Numero Email", min_value=1, max_value=100, value=10)
165
+ if st.session_state.selected_option["tipo"]=='CALENDAR':
166
+ st.session_state.numero_elementi = st.slider(label="Numero Eventi Calendario", min_value=1, max_value=100, value=10)
167
  st.session_state.rag_enabled = st.session_state.selected_option.get('tipo', '')=='RAG'
168
  if st.session_state.selected_option_key == 'Decreti':
169
  st.session_state.top_k = st.slider(label="Documenti da ricercare", min_value=1, max_value=20, value=4, disabled=not st.session_state.rag_enabled)
 
344
  with st.spinner("Ricerca nei Decreti...."):
345
  time.sleep(1)
346
  st.session_state.instruction, links = gen_augmented_prompt(prompt=prompt_originale, top_k=st.session_state.top_k)
347
+ if st.session_state.selected_option["tipo"]=='EMAIL':
348
+ with st.spinner("Ricerca nelle Email...."):
349
+ time.sleep(1)
350
+ st.session_state.instruction, links = leggi_gmail(max_results=st.session_state.numero_elementi)
351
+ if st.session_state.selected_option["tipo"]=='CALENDAR':
352
+ with st.spinner("Ricerca nel Calendario...."):
353
+ time.sleep(1)
354
+ st.session_state.instruction, links = leggi_calendario_google(max_results=st.session_state.numero_elementi)
355
  with st.spinner("Generazione in corso...") :
356
  time.sleep(1)
357
  #st.session_state.instruction = instruction_originale + '\n----------------------------------------------\n' + st.session_state.instruction
 
411
  with st.chat_message("assistant"):
412
  placeholder = st.empty()
413
  full_response = stream_handler(chat_stream, placeholder)
414
+ if st.session_state.rag_enabled or st.session_state.cerca_online or st.session_state.selected_option["tipo"]=='EMAIL' or st.session_state.selected_option["tipo"]=='CALENDAR':
415
  show_source(links)
416
  if st.session_state.options.get(st.session_state.selected_option_key, {})["tipo"]=='DOCUMENTO':
417
  with st.expander("Mostra Documento") :