MatteoScript commited on
Commit
e5e8dc0
·
verified ·
1 Parent(s): b13c015

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -14
app.py CHANGED
@@ -12,7 +12,7 @@ load_dotenv()
12
  URL_APP_SCRIPT = os.getenv('URL_APP_SCRIPT')
13
 
14
  CHAT_BOTS = {"Mixtral 8x7B v0.1" :"mistralai/Mixtral-8x7B-Instruct-v0.1"}
15
- SYSTEM_PROMPT = ["Sei BonsiAI e mi aiuterai nelle mie richieste (Parla in ITALIANO)", "Esatto, sono BonsiAI. Di cosa hai bisogno?"]
16
  options_old = {
17
  'Email Genitori': {'systemRole': 'Tu sei un esperto scrittore di email. Attieniti allo stile che ti ho fornito nelle instruction e inserici il contenuto richiesto. Genera il testo di una mail a partire da questo contenuto, con lo stile ricevuto in precedenza: ',
18
  'systemStyle': 'Utilizza lo stile fornito come esempio e parla in ITALIANO e firmati sempre come il Signor Preside',
@@ -28,7 +28,7 @@ options_old = {
28
  'RAG': True}
29
  }
30
 
31
- st.set_page_config(page_title="BonsiAI", page_icon="🤖")
32
 
33
  def init_state() :
34
  if "messages" not in st.session_state:
@@ -71,12 +71,8 @@ def sidebar():
71
  st.session_state.instruction = st.text_area("Istruzioni", st.session_state.instruction, help='Testo di riferimento sul quale il modello si basa per generare il testo')
72
 
73
  st.session_state.rag_enabled = st.session_state.selected_option.get('tipo', '')=='RAG'
74
- if st.session_state.selected_option_key == 'Decreti':
75
  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)
76
- st.session_state.decreti_escludere = st.multiselect(
77
- 'Decreti da escludere',
78
- ['23.10.2 destinazione risorse residue pnrr DGR 1051-2023_Destinazione risorse PNRR Duale.pdf', '23.10.25 accompagnatoria Circolare Inail assicurazione.pdf', '23.10.26 circolare Inail assicurazione.pdf', '23.10.3 FAQ in attesa di avviso_.pdf', '23.11.2 avviso 24_24 Decreto 17106-2023 Approvazione Avviso IeFP 2023-2024.pdf', '23.5.15 decreto linee inclusione x enti locali.pdf', '23.6.21 Circolare+esplicativa+DGR+312-2023.pdf', '23.7.3 1° Decreto R.L. 23_24 .pdf', '23.9 Regolamento_prevenzione_bullismo_e_cyberbullismo__Centro_Bonsignori.pdf', '23.9.1 FAQ inizio anno formativo.pdf', '23.9.15 DECRETO VERIFICHE AMMINISTR 15-09-23.pdf', '23.9.4 modifica decreto GRS.pdf', '23.9.8 Budget 23_24.pdf', '24.10.2022 DECRETO loghi N.15176.pdf', 'ALLEGATO C_Scheda Supporti al funzionamento.pdf', 'ALLEGATO_ B_ Linee Guida.pdf', 'ALLEGATO_A1_PEI_INFANZIA.pdf', 'ALLEGATO_A2_PEI_PRIMARIA.pdf', 'ALLEGATO_A3_PEI_SEC_1_GRADO.pdf', 'ALLEGATO_A4_PEI_SEC_2_GRADO.pdf', 'ALLEGATO_C_1_Tabella_Fabbisogni.pdf', 'Brand+Guidelines+FSE+.pdf', 'Decreto 20797 del 22-12-2023_Aggiornamento budget PNRR.pdf', 'Decreto 20874 del 29-12-2023 Avviso IeFP PNRR 2023-2024_file unico.pdf'],
79
- [])
80
  st.markdown("---")
81
 
82
  def model_settings() :
@@ -91,10 +87,10 @@ def sidebar():
91
  st.markdown("""> **Creato da [Matteo Bergamelli] 🔗**""")
92
 
93
  def header() :
94
- st.title("BonsiAI")
95
- with st.expander("Cos'è BonsiAI?"):
96
- st.info("""BonsiAI Chat è un ChatBot personalizzato basato su un database vettoriale, funziona secondo il principio della Generazione potenziata da Recupero (RAG).
97
- La sua funzione principale ruota attorno alla gestione di un ampio repository di documenti BonsiAI e fornisce agli utenti risposte in linea con le loro domande.
98
  Questo approccio garantisce una risposta più precisa sulla base della richiesta degli utenti.""")
99
 
100
  def chat_box() :
@@ -127,7 +123,7 @@ def formattaPrompt(prompt, systemRole, systemStyle, instruction):
127
  def gen_augmented_prompt(prompt, top_k) :
128
  links = ""
129
  embedding = HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
130
- db = Chroma(persist_directory='./DB_Decreti', embedding_function=embedding)
131
  docs = db.similarity_search(prompt, k=top_k)
132
 
133
  links = []
@@ -150,7 +146,7 @@ def generate_chat_stream(prompt) :
150
  links = []
151
  prompt_originale = prompt
152
  if st.session_state.rag_enabled :
153
- with st.spinner("Ricerca nei Decreti...."):
154
  time.sleep(1)
155
  st.session_state.instruction, links = gen_augmented_prompt(prompt=prompt_originale, top_k=st.session_state.top_k)
156
  prompt = formattaPrompt(prompt, st.session_state.systemRole, st.session_state.systemStyle, st.session_state.instruction)
@@ -182,7 +178,7 @@ sidebar()
182
  header()
183
  chat_box()
184
 
185
- if prompt := st.chat_input("Chatta con BonsiAI..."):
186
  st.chat_message("user").markdown(prompt)
187
  st.session_state.messages.append({"role": "user", "content": prompt})
188
 
 
12
  URL_APP_SCRIPT = os.getenv('URL_APP_SCRIPT')
13
 
14
  CHAT_BOTS = {"Mixtral 8x7B v0.1" :"mistralai/Mixtral-8x7B-Instruct-v0.1"}
15
+ SYSTEM_PROMPT = ["Sei ZucchettiAI e mi aiuterai nelle mie richieste (Parla in ITALIANO)", "Esatto, sono ZucchettiAI. Di cosa hai bisogno?"]
16
  options_old = {
17
  'Email Genitori': {'systemRole': 'Tu sei un esperto scrittore di email. Attieniti allo stile che ti ho fornito nelle instruction e inserici il contenuto richiesto. Genera il testo di una mail a partire da questo contenuto, con lo stile ricevuto in precedenza: ',
18
  'systemStyle': 'Utilizza lo stile fornito come esempio e parla in ITALIANO e firmati sempre come il Signor Preside',
 
28
  'RAG': True}
29
  }
30
 
31
+ st.set_page_config(page_title="ZucchettiAI", page_icon="🤖")
32
 
33
  def init_state() :
34
  if "messages" not in st.session_state:
 
71
  st.session_state.instruction = st.text_area("Istruzioni", st.session_state.instruction, help='Testo di riferimento sul quale il modello si basa per generare il testo')
72
 
73
  st.session_state.rag_enabled = st.session_state.selected_option.get('tipo', '')=='RAG'
74
+ if st.session_state.selected_option_key == 'Manuali':
75
  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)
 
 
 
 
76
  st.markdown("---")
77
 
78
  def model_settings() :
 
87
  st.markdown("""> **Creato da [Matteo Bergamelli] 🔗**""")
88
 
89
  def header() :
90
+ st.title("ZucchettiAI")
91
+ with st.expander("Cos'è ZucchettiAI?"):
92
+ st.info("""ZucchettiAI Chat è un ChatBot personalizzato basato su un database vettoriale, funziona secondo il principio della Generazione potenziata da Recupero (RAG).
93
+ La sua funzione principale ruota attorno alla gestione di un ampio repository di manuali di Zucchetti e fornisce agli utenti risposte in linea con le loro domande.
94
  Questo approccio garantisce una risposta più precisa sulla base della richiesta degli utenti.""")
95
 
96
  def chat_box() :
 
123
  def gen_augmented_prompt(prompt, top_k) :
124
  links = ""
125
  embedding = HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
126
+ db = Chroma(persist_directory='./DB_Manuali', embedding_function=embedding)
127
  docs = db.similarity_search(prompt, k=top_k)
128
 
129
  links = []
 
146
  links = []
147
  prompt_originale = prompt
148
  if st.session_state.rag_enabled :
149
+ with st.spinner("Ricerca nei Manuali...."):
150
  time.sleep(1)
151
  st.session_state.instruction, links = gen_augmented_prompt(prompt=prompt_originale, top_k=st.session_state.top_k)
152
  prompt = formattaPrompt(prompt, st.session_state.systemRole, st.session_state.systemStyle, st.session_state.instruction)
 
178
  header()
179
  chat_box()
180
 
181
+ if prompt := st.chat_input("Chatta con ZucchettiAI..."):
182
  st.chat_message("user").markdown(prompt)
183
  st.session_state.messages.append({"role": "user", "content": prompt})
184