Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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") :
|