Spaces:
Running
Running
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") :
|