ajeetkumar01 commited on
Commit
904fd05
·
verified ·
1 Parent(s): 2cac20b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -0
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'] = []