tsi-unito / UnitoBOT

Un bot di telegram per la gestione dei gruppi, links, moderazione ed appunti dell'Università degli Studi di Torino
GNU General Public License v3.0
3 stars 1 forks source link

Feedback per messaggi automatici #17

Closed stefa168 closed 5 months ago

stefa168 commented 1 year ago

Ho aggiunto al lavoro di @lory9894 un sistema per salvare i messaggi che hanno triggerato una risposta automatica del bot, e anche dei bottoni per poter lasciare un feedback riguardo l'utilità di un certo messaggio. Questo per puntare in futuro a produrre qualcosa che possa fare un po' di natural language processing per decidere se mandare o meno il messaggio.

Le funzionalità sono pronte per essere inserite su master.

N-essuno commented 11 months ago

Aggiungo qualcosa a ciò che ha detto Lorenzo:

  1. Aggiungerei dei commenti per spiegare meglio cosa si fa e alcuni costrutti o oggetti che si usano e possono sembrare un po' criptici se non si ha il quadro generale di tutto il codice scritto (che lo può avere purtroppo solo chi lo scrive). In particolare nel metodo handle_auto_feedbacks (es. righe 376-381)

    • Forse anche perchè sono lento io ma ci ho messo un po' a leggerlo e capire che in realtà facesse una cosa abbastanza lineare e semplice
  2. Dubbio: Ho visto la docs di OneToMany di SQLAlchemy. Considerando question.py in cui Feedback ha sia un riferimento a question_id che alla question vera e propria, volevo solo assicurarmi che questo sdoppiamento non fosse creato poi nel DB. Anche perchè in effetti nel DDL non mi è sembrato di vederlo.

stefa168 commented 5 months ago

Per ora ho effettuato la merge dal momento che abbiamo troppe funzionalità parallele presenti che sarebbero utili in upstream, poi continuo con i suggerimenti che avete indicato! @lory9894 @N-essuno

Per quanto riguarda (1) e (2) di Lorenzo, ho provveduto a implementare la costruzione automatica delle tabelle nel codice. È temporaneo, perchè bisognerebbe utilizzare Alembic e non SQLA direttamente per poter fare le migrazioni di versione in versione del DB... ma non ho ancora avuto modo di capire bene come funzioni 😦