background image

 

Νικόλαος Λυμπιτάκης, Κατασκευή ενός RAG Chatbot για 
Ξενοδοχειακή Υποστήριξη 

 

 
 

 

47 

 

 

# Επιλέγουµε µόνο τα ζεύγη ερώτησης-απάντησης µε θετικό feedback 
#('good') 

conn = sqlite3.connect(DB_PATH) 

cursor = conn.cursor() 

cursor.execute(“SELECT prompt, response FROM conversation_turns WHERE 
feedback = 'good'“) 

good_conversations = cursor.fetchall() 

conn.close() 

… 

# Προετοιµασία Δεδοµένων για το Vector Store. Διαχωρίζουµε τα δεδοµένα 
#σε λίστες για ευρετηρίαση. 

# documents: Οι ερωτήσεις των χρηστών (κείµενο προς 
#αναζήτηση/embedding). 

# metadatas: Οι απαντήσεις του chatbot (πληροφορία προς ανάκτηση). 

documents = [] 

metadatas = [] 

for prompt, response in good_conversations: 

documents.append(prompt) 

metadatas.append({“response”: response}) 

# Ενηµέρωση ή Δηµιουργία του FAISS Index. Φορτώνουµε το υπάρχον vector 
#store για να προσθέσουµε τα νέα δεδοµένα. Αν δεν υπάρχει, 

#δηµιουργούµε ένα καινούργιο. 

try: 

vector_store = FAISS.load_local(VECTOR_STORE_PATH, embeddings, 
allow_dangerous_deserialization=True) 

vector_store.add_texts(texts=documents, metadatas=metadatas) 

except Exception: 

vector_store = FAISS.from_texts(texts=documents, 
embedding=embeddings, metadatas=metadatas) 

 

 

Εικόνα 18 : Kώδικας από update_good_conversations_vector_store.py