Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -23,26 +23,32 @@ class ChatBot:
|
|
23 |
json.dump(self.knowledge_base, f, indent=4)
|
24 |
|
25 |
def learn_and_response(self, user_input):
|
|
|
26 |
response = self.find_response(user_input)
|
27 |
if response is None:
|
28 |
st.write(f"I don't have a response for '{user_input}'. Please teach me:")
|
|
|
29 |
response = st.text_input(f"Teach me a response for '{user_input}':", key="teach_input")
|
|
|
30 |
if st.button("Submit Response"):
|
31 |
if response:
|
32 |
self.teach_response(user_input, response)
|
33 |
self.save_knowledge_base() # Save after teaching
|
34 |
st.success("Response saved!")
|
|
|
35 |
else:
|
36 |
st.warning("Please provide a response before submitting.")
|
37 |
return response
|
38 |
|
39 |
def find_response(self, user_input):
|
|
|
40 |
for question in self.knowledge_base.get("questions", []):
|
41 |
if question['question'].lower() == user_input.lower():
|
42 |
return question['response']
|
43 |
return None
|
44 |
|
45 |
def teach_response(self, user_input, response):
|
|
|
46 |
new_question = {'question': user_input.lower(), 'response': response}
|
47 |
if 'questions' not in self.knowledge_base:
|
48 |
self.knowledge_base['questions'] = []
|
|
|
23 |
json.dump(self.knowledge_base, f, indent=4)
|
24 |
|
25 |
def learn_and_response(self, user_input):
|
26 |
+
# Try to find a response
|
27 |
response = self.find_response(user_input)
|
28 |
if response is None:
|
29 |
st.write(f"I don't have a response for '{user_input}'. Please teach me:")
|
30 |
+
# Display a text input to teach the bot
|
31 |
response = st.text_input(f"Teach me a response for '{user_input}':", key="teach_input")
|
32 |
+
# When the user provides a response and submits it, teach the bot
|
33 |
if st.button("Submit Response"):
|
34 |
if response:
|
35 |
self.teach_response(user_input, response)
|
36 |
self.save_knowledge_base() # Save after teaching
|
37 |
st.success("Response saved!")
|
38 |
+
return response # Return the learned response immediately
|
39 |
else:
|
40 |
st.warning("Please provide a response before submitting.")
|
41 |
return response
|
42 |
|
43 |
def find_response(self, user_input):
|
44 |
+
# Search for the user input in the knowledge base
|
45 |
for question in self.knowledge_base.get("questions", []):
|
46 |
if question['question'].lower() == user_input.lower():
|
47 |
return question['response']
|
48 |
return None
|
49 |
|
50 |
def teach_response(self, user_input, response):
|
51 |
+
# Add the new question-response pair to the knowledge base
|
52 |
new_question = {'question': user_input.lower(), 'response': response}
|
53 |
if 'questions' not in self.knowledge_base:
|
54 |
self.knowledge_base['questions'] = []
|