Update Chat Interface #47

Closed
opened 2025-10-24 19:53:12 +02:00 by Berack96 · 2 comments
Berack96 commented 2025-10-24 19:53:12 +02:00 (Migrated from github.com)

Similmente alla PR #44 bisognerebbe fare la stessa cosa anche alla parte di chat.py.

Quello che si dovrebbe fare è mostrare cosa sta facendo l'applicazione mentre l'utente aspetta.
Qui entrano in gioco i listener che ho messo a disposizione nella pipeline.
Alla funzione interact (che usa la chat per interagire con la pipeline) si possono passare in input una lista di tuple nella forma: (evento, funzione_da_eseguire)
La chat andrebbe modificata in modo da mostrare un messaggio progressivo, e modificarlo ogni volta che succede un evento specifico (per esempio l'app ha finito di fare il controllo sulla query)

Esempio di listener possibili (assumento l'aggiunta di update_user dentro chat.py):

listener = [
  (PipelineEvent.QUERY_CHECK, lambda _: self.update_user()),
  (PipelineEvent.TOOL_USED, lambda e: update_user(e.tool.tool_name)),
]

Siccome la PR #44 è già stata integrata, si può usare lo stesso strumento RunMessage per il messaggio da mostrare che si trova in agents/core.py

Checklist

  • Inviare un messaggio di attesa all'utente
  • Fare in modo che l'utente non possa inviare messaggi (per evitare caos) quando la pipeline viene eseguita (non so se gradio lo fa già di default o meno)
  • Aggiungere una funzione che modifica l'ultimo messaggio inviato dal bot usando RunMessage.
  • Aggiungere dei listener al comando interact dentro la funzione gradio_respond di chat.py in modo che richiamino la funzione di modifica del messaggio
Similmente alla PR #44 bisognerebbe fare la stessa cosa anche alla parte di [chat.py](https://github.com/Berack96/upo-appAI/blob/main/src/app/interface/chat.py). Quello che si dovrebbe fare è mostrare cosa sta facendo l'applicazione mentre l'utente aspetta. Qui entrano in gioco i listener che ho messo a disposizione nella pipeline. Alla funzione `interact` (che usa la chat per interagire con la pipeline) si possono passare in input una lista di tuple nella forma: (evento, funzione_da_eseguire) La chat andrebbe modificata in modo da mostrare un messaggio progressivo, e modificarlo ogni volta che succede un evento specifico (per esempio l'app ha finito di fare il controllo sulla query) Esempio di listener possibili (assumento l'aggiunta di `update_user` dentro chat.py): ```python listener = [ (PipelineEvent.QUERY_CHECK, lambda _: self.update_user()), (PipelineEvent.TOOL_USED, lambda e: update_user(e.tool.tool_name)), ] ``` Siccome la PR #44 è già stata integrata, si può usare lo stesso strumento `RunMessage` per il messaggio da mostrare che si trova in [agents/core.py](https://github.com/Berack96/upo-appAI/blob/6d0b81603390ca038a732d4bd9c0afcdaa687c5a/src/app/agents/core.py#L133) ## Checklist - [x] Inviare un messaggio di attesa all'utente - [x] Fare in modo che l'utente non possa inviare messaggi (per evitare caos) quando la pipeline viene eseguita (non so se gradio lo fa già di default o meno) - [x] Aggiungere una funzione che modifica l'ultimo messaggio inviato dal bot usando `RunMessage`. - [x] Aggiungere dei listener al comando `interact` dentro la funzione `gradio_respond` di chat.py in modo che richiamino la funzione di modifica del messaggio
Simo93-rgb commented 2025-10-29 18:03:25 +01:00 (Migrated from github.com)
  • Ci sarebbe anche da modificare la dimensione della finestra della chat. Sia in QHD che in 4K mantiene le stesse proporzioni quindi non credo sia colpa della risoluzione, ma è da verificare questa mia supposizione.
- [x] Ci sarebbe anche da modificare la dimensione della finestra della chat. Sia in QHD che in 4K mantiene le stesse proporzioni quindi non credo sia colpa della risoluzione, ma è da verificare questa mia supposizione.
trojanhorse47 commented 2025-10-30 17:34:16 +01:00 (Migrated from github.com)

Controllate e fate delle prove, ma dovrebbe funzionare tutto.

Controllate e fate delle prove, ma dovrebbe funzionare tutto.
Sign in to join this conversation.