background image

Σχεδιασμός και Υλοποίηση εξειδικευμένου chatbot για διαδικτυακές πλατφόρμες

 

66

 

Οι λειτουργικές και μη λειτουργικές απαιτήσεις που περιγράφηκαν παραπάνω, μαζί με τον 

τρόπο που καθεμία καλύπτεται στην τελική υλοποίηση, συγκεντρώνονται στον Πίνακα 11. Η 

αντιστοίχιση  αυτή  χρησιμεύει  ως  οδηγός  για  τα  επόμενα  κεφάλαια,  καθώς  κάθε  απαίτηση 

εντοπίζεται αργότερα σε συγκεκριμένο τμήμα του κώδικα. 

Πίνακας 11: Λειτουργικές και μη λειτουργικές απαιτήσεις και η κάλυψή τους 

Τύπος

 

Απαίτηση

 

Κάλυψη στο σύστημα

 

Λειτουργική

 

Δίγλωσσες απαντήσεις (EL/EN) χωρίς δήλωση γλώσσας

 

Ανίχνευση χαρακτήρων + BGE-M3

 

Λειτουργική

 

Τεκμηρίωση με πηγή και βεβαιότητα

 

Επισύναψη πηγής + ποσοστό ομοιότητας

 

Λειτουργική

 

Προτεραιότητα σε πρόσφατο υλικό

 

Βαρύτητα επικαιρότητας

 

Λειτουργική

 

Άρνηση όταν λείπει πληροφορία

 

Κατώφλι ασφαλείας

 

Λειτουργική

 

Απόρριψη εκτός θέματος / κακόβουλων εντολών

 

Ντετερμινιστικοί έλεγχοι εισόδου

 

Λειτουργική

 

Ανατροφοδότηση και επαναχρησιμοποίηση καλών 

απαντήσεων

 

Μνήμη ερωτο-απαντήσεων

 

Μη λειτουργική

 

Μόνο ανοιχτό λογισμικό, χωρίς επί πληρωμή API

 

Ollama / Chroma / Chainlit

 

Μη λειτουργική

 

Πλήρως τοπική εκτέλεση

 

Όλη η επεξεργασία στον τοπικό υπολογιστή

 

Μη λειτουργική

 

Καταναλωτικό υλικό

 

RX 6700 XT 12 GB / 32 GB / ROCm

 

Μη λειτουργική

 

Χρόνος απόκρισης λίγων δευτερολέπτων

 

≈ 4 s κατά μέσο όρο

 

Μη λειτουργική

 

Συντηρησιμότητα και γενίκευση

 

Κεντρικό αρχείο ρυθμίσεων

 

 

4.2 Επισκόπηση της αρχιτεκτονικής 

Για  να  καλυφθούν  οι  παραπάνω  απαιτήσεις,  το  σύστημα  οργανώθηκε  σε  ανεξάρτητες 

μονάδες, καθεμία με ξεκάθαρο ρόλο. Η λογική αυτή της αρθρωτής σχεδίασης μας βόηθησε να 

δοκιμάζουμε και να βελτιώνουμε κάθε κομμάτι χωριστά, χωρίς να επηρεάζεται το υπόλοιπο 

σύστημα. Σε γενικές γραμμές η λειτουργία χωρίζεται σε δύο φάσεις. Η πρώτη φάση γίνεται εκ 

των  προτέρων,  μία  φορά  αρχικά  και  έπειτα  όποτε  ανανεώνεται  το  περιεχόμενο,  και  είναι 

υπεύθυνη για τη συλλογή και την ευρετηρίαση των δεδομένων. Η δεύτερη φάση εκτελείται 

ζωντανά, κάθε φορά που ο χρήστης στέλνει μια ερώτηση, και είναι υπεύθυνη για την ανάκτηση 

του  σχετικού  υλικού  και  τη  σύνθεση  της  απάντησης.  Η  συνολική  εικόνα  φαίνεται  στην 

Εικόνα 3.