Commit ·
5ca1355
1
Parent(s): 619d0fe
fix grafico
Browse files
app.py
CHANGED
|
@@ -206,44 +206,44 @@ with tab_gen:
|
|
| 206 |
st.write("Invia i frammenti al Large Language Model (es. Llama 3) per estrarre dinamicamente entità e relazioni. " \
|
| 207 |
"L'approccio Neuro-Simbolico forza l'output del modello a rispettare una struttura dati rigorosa (JSON tipizzato) prima di procedere.")
|
| 208 |
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 230 |
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
res
|
| 234 |
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
st.session_state.pipeline_stage = 2
|
| 244 |
-
st.rerun()
|
| 245 |
-
except Exception as e:
|
| 246 |
-
st.error(f"Errore: {e}")
|
| 247 |
|
| 248 |
st.markdown("⬇️")
|
| 249 |
|
|
|
|
| 206 |
st.write("Invia i frammenti al Large Language Model (es. Llama 3) per estrarre dinamicamente entità e relazioni. " \
|
| 207 |
"L'approccio Neuro-Simbolico forza l'output del modello a rispettare una struttura dati rigorosa (JSON tipizzato) prima di procedere.")
|
| 208 |
|
| 209 |
+
if not is_step_b_unlocked:
|
| 210 |
+
st.caption("Completa la Fase 1 per sbloccare l'estrazione.")
|
| 211 |
+
elif st.session_state.pipeline_stage >= 2:
|
| 212 |
+
data = st.session_state.extraction_data
|
| 213 |
+
st.markdown(f"""
|
| 214 |
+
<div class="success-box">
|
| 215 |
+
<b>Estrazione completata!</b> Identificate {len(data['entities'])} entità e {len(data['triples'])} triple.
|
| 216 |
+
</div>
|
| 217 |
+
""", unsafe_allow_html=True)
|
| 218 |
+
with st.expander("Vedi dati estratti"):
|
| 219 |
+
st.write("Entità Trovate:", data['entities'])
|
| 220 |
+
st.dataframe(pd.DataFrame(data['triples']), hide_index=True)
|
| 221 |
+
else:
|
| 222 |
+
if st.button("Avvia Estrazione Ontologica", type="primary"):
|
| 223 |
+
with st.spinner("Invocazione modello sui frammenti..."):
|
| 224 |
+
try:
|
| 225 |
+
chunks = st.session_state.chunks
|
| 226 |
+
extractor = get_extractor()
|
| 227 |
+
all_triples = []
|
| 228 |
+
all_entities = []
|
| 229 |
+
prog_bar = st.progress(0)
|
| 230 |
+
|
| 231 |
+
for i, chunk in enumerate(chunks):
|
| 232 |
+
chunk_id = f"st_req_chunk_{i+1}"
|
| 233 |
+
res = extractor.extract(chunk, source_id=chunk_id)
|
| 234 |
|
| 235 |
+
if res:
|
| 236 |
+
if res.triples: all_triples.extend([t.model_dump() for t in res.triples])
|
| 237 |
+
if res.entities: all_entities.extend(res.entities)
|
| 238 |
|
| 239 |
+
prog_bar.progress((i+1)/len(chunks))
|
| 240 |
+
|
| 241 |
+
# Salvataggio in-memory
|
| 242 |
+
st.session_state.extraction_data = {"entities": all_entities, "triples": all_triples}
|
| 243 |
+
st.session_state.pipeline_stage = 2
|
| 244 |
+
st.rerun()
|
| 245 |
+
except Exception as e:
|
| 246 |
+
st.error(f"Errore: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 247 |
|
| 248 |
st.markdown("⬇️")
|
| 249 |
|