Νικόλαος Λυμπιτάκης, Κατασκευή ενός RAG Chatbot για
Ξενοδοχειακή Υποστήριξη
51
3. Ενέργεια (Action): Με βάση τον συλλογισμό, ο πράκτορας επιλέγει το καταλληλότερο
εργαλείο από το διαθέσιμο σύνολο (π.χ. get_faq_answer).
4. Είσοδος Ενέργειας (Action Input): Καθορίζεται η συγκεκριμένη παράμετρος που θα
σταλεί στο εργαλείο (π.χ. η ερώτηση προς αναζήτηση).
5. Παρατήρηση (Observation): Το μοντέλο λαμβάνει το αποτέλεσμα από την εκτέλεση
του εργαλείου και το ενσωματώνει στο πλαίσιο της συνομιλίας
Ο κύκλος αυτός επαναλαμβάνεται όσες φορές κρίνεται απαραίτητο, μέχρι ο
πράκτορας να συγκεντρώσει όλες τις απαιτούμενες πληροφορίες. Μόνο τότε προχωρά στη
σύνθεση της Τελικής Απάντησης (Final Answer). Η προσέγγιση αυτή εξασφαλίζει τη
διαφάνεια στη λήψη αποφάσεων και μειώνει σημαντικά την πιθανότητα παραγωγής
εσφαλμένων πληροφοριών (hallucinations).
Ως εγκέφαλος του συστήματος επιλέχθηκε το γλωσσικό μοντέλο DeepSeek-Chat
. Η ενσωμάτωσή του στην πλατφόρμα LangChain πραγματοποιήθηκε αξιοποιώντας τη
συμβατότητα του API της DeepSeek με το πρότυπο της OpenAI. Αυτό επέτρεψε τη χρήση
της κλάσης ChatOpenAI, ορίζοντας απλώς τη διεύθυνση βάσης (base_url) στον διακομιστή
της DeepSeek. Η προσέγγιση αυτή προσφέρει ευελιξία και μειώνει την πολυπλοκότητα της
υλοποίησης.
llm = ChatOpenAI(
model=“deepseek-chat”,
api_key=DEEPSEEK_API_KEY,
base_url=“https://api.deepseek.com”
)
Εικόνα 20 : Kώδικας από chatbot_logic.py
Κεντρικό ρόλο στην απόδοση του πράκτορα παίζει η Μηχανική Προτροπών (Prompt
Engineering). Το πρότυπο προτροπής (Prompt Template, εικόνα 21) που σχεδιάστηκε
καθορίζει την προσωπικότητα του συστήματος, το ύφος επικοινωνίας και τους
περιορισμούς λειτουργίας. Ο πράκτορας ορίζεται ως ένας πειστικός βοηθός του
ξενοδοχείου “The Grand Cretan Resort Hotel”, με κύριο στόχο την ενθάρρυνση των
κρατήσεων.
Ένα κρίσιμο στοιχείο του σχεδιασμού είναι η διαχείριση της πολυγλωσσικότητας.
Παρόλο που η βάση γνώσης και τα εργαλεία είναι βελτιστοποιημένα για την αγγλική
γλώσσα, ο πράκτορας έχει την οδηγία να μεταφράζει εσωτερικά τα ερωτήματα, να εκτελεί