Python Chatbot-Fehler: Wo liegt hier das Problem?
Ich programmiere jetzt seit mehreren Stunden diesen Chatbot und finde den Fehler nicht, warum er es nicht schafft, auf die Frage: gut die richtige Antwort zu geben. Hier ist mein Code und wenn ihr den Fehler findet, wäre ich euch sehr dankbar. main.py: class NeuroSama: def __init__(self): self.known_topics = self.load_topics("knowledge_base.txt") self.conversation_history = [] self.load_conversation_log("conversation_log.txt") def respond(self, message): response = "" # Hier wird die Eingabe in Kleinbuchstaben umgewandelt, bevor sie verarbeitet wird message = message.lower() if self.is_new_topic(message): response = "Nein, was ist " + message + "?" else: response = self.get_response_from_file(message, "generate_response.py") self.conversation_history.append({"input": message, "output": response}) return response def is_new_topic(self, topic): return topic.lower() not in self.known_topics def get_response_from_file(self, topic, filename): try: response_module = __import__(filename.split('.')[0]) return response_module.generate_response(topic, self.conversation_history) except FileNotFoundError: return "Die Datei wurde nicht gefunden." except AttributeError: return "Die Funktion wurde nicht gefunden." def save_conversation(self, filename): with open(filename, 'w') as file: for convo in self.conversation_history: file.write(f"Eingabe: {convo['input']}\n") file.write(f"Antwort: {convo['output']}\n") file.write("\n") def load_topics(self, filename): known_topics = set() try: with open(filename, 'r') as file: for line in file: known_topics.add(line.strip().lower()) except FileNotFoundError: print("Datei nicht gefunden. Neue Datei wird erstellt.") open(filename, 'w').close() return known_topics def load_conversation_log(self, filename): try: with open(filename, 'r') as file: for line in file: if line.startswith("Eingabe:"): input_text = line[len("Eingabe:"):].strip() output_text = file.readline()[len("Antwort:"):].strip() self.conversation_history.append({"input": input_text, "output": output_text}) except FileNotFoundError: print("Konversationsprotokoll nicht gefunden.") # Beispielnutzung neuro_sama = NeuroSama() while True: user_input = input("Du: ") if user_input.lower() == 'exit': neuro_sama.save_conversation("conversation_log.txt") break response = neuro_sama.respond(user_input) print("Neuro-Sama:", response) generate_response.py: def generate_response(topic, conversation_history): if len(conversation_history) > 0: last_input = conversation_history[-1]['input'].lower() if 'hallo' in last_input: return "Hallo zurück!" elif any(variant in last_input for variant in ['gut', 'gutes', 'gutem', 'guter']): return "Es ist großartig zu hören, dass es dir gut geht!" else: return "Das ist interessant!" else: return "Ich bin mir nicht sicher, wie ich darauf reagieren soll." Hier sind die Antworten, die ich derzeit bekommen habe: = RESTART: C:\Users\####\Desktop\####\main.py Du: hallo Neuro-Sama: Hallo zurück! Du: Hallo Neuro-Sama: Hallo zurück! Du: gut Neuro-Sama: Nein, was ist gut? Du: = RESTART: C:\Users\####\Desktop\####\main.py Du: gut Neuro-Sama: Nein, was ist gut? Du: Gut Neuro-Sama: Nein, was ist gut? Du: