background image

 

 

31 

 

Τέλος,  το  app.run  ξεκινάει  τη  λειτουργεία  του  τοπικού  Flask  server.  Το  debugging 

χρησιμοποιείται ώστε να μπορούν να εμφανιστούν errors που μπορεί να προκύψουν, αλλά και 

για να ξεκινήσει ο server εκ νέου, σε περίπτωση που τροποποιηθεί ο κώδικας όσο τρέχει. 

if __name__ == '__main__': 

app.run(debug=True, host='127.0.0.1', port=5010) 

 

Υλοποίηση Διεπαφής Συνομιλίας 

Η διεπαφή συνομιλίας αναπτύχθηκε στο αρχείο chat.py και χρησιμοποιεί τη βιβλιοθήκη 

Pygame για τη διαχείριση των γραφικών, καθώς και τις requests για την επικοινωνία με το API. 

 

Βιβλιοθήκες που χρησιμοποιούνται: 

●  Pygame: module για τη δημιουργία γραφικών και διεπαφών για παιχνίδια σε Python 

●  requests: επιτρέπει την επικοινωνία του LLM με το API μέσω HTTP αιτημάτων.  

● 

textwrap: επιτρέπει την αναδίπλωση κειμένου

 

 

Επεξεργασία Εισόδου και Πλοήγηση στη Συνομιλία 

Η κύρια λογική περιλαμβάνει μία while λούπα, μέσα από την οποία ο χρήστης μπορεί να 

πληκτρολογήσει το κείμενο που θέλει να στείλει, ώστε να επικοινωνήσει με το LLM. Επιπλέον 

μπορεί με τη χρήση των up και down arrow keys να γίνει scroll στο τυπωμένο κείμενο, ώστε ο 

χρήστης να μπορεί να περιηγηθεί στη συνομιλία.  

while not done: 

        if event.type == pygame.KEYDOWN: 
            if active: 
                if event.key == pygame.K_RETURN:# enter key is pressed 
                    response = llm_response(input_text) 

                    messages.append(("Me   -> ", input_text)) 
                    messages.append(("LLM -> ", response)) 
                    input_text = '' # clear the input box 
                elif event.key == pygame.K_BACKSPACE: 

                    input_text = input_text[:-1] 
                elif event.key == pygame.K_UP: # scroll up in input box 
                    scroll_input += 10  #  scroll speed 

                elif event.key == pygame.K_DOWN:  
                    scroll_input -= 10  # scroll speed 
                else: 
                    input_text += event.unicode 

            if not active: 
                if event.key == pygame.K_UP:  # scroll up in messages 
                    scroll_messages += 10  #  scroll speed 
              elif event.key == pygame.K_DOWN:# scroll down in messages 

                    scroll_messages -= 10  # scroll speed 
        if event.type == pygame.MOUSEWHEEL: 
            scroll_messages += 10*event.y  # mouse scroll speed