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: