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: