karthikeyan-r commited on
Commit
d371388
·
verified ·
1 Parent(s): 25de140

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -7
app.py CHANGED
@@ -24,6 +24,8 @@ if "qa_pipeline" not in st.session_state:
24
  st.session_state["qa_pipeline"] = None
25
  if "conversation" not in st.session_state:
26
  st.session_state["conversation"] = []
 
 
27
 
28
  # Load Model
29
  if load_model_button:
@@ -58,26 +60,33 @@ with chat_container:
58
  st.subheader("Conversation")
59
  for idx, (speaker, message) in enumerate(st.session_state["conversation"]):
60
  if speaker == "You":
61
- st.text_area(f"You ({idx}):", message, key=f"you_{idx}", disabled=False)
62
  else:
63
- st.text_area(f"Model ({idx}):", message, key=f"model_{idx}", disabled=False)
64
 
65
  # Input Area
66
  with input_container:
67
  if st.session_state["qa_pipeline"]:
68
- user_input = st.text_input("Enter your query:", key="chat_input", label_visibility="visible")
 
 
 
 
 
 
69
  if st.button("Send", key="send_button"):
70
- if user_input:
71
  with st.spinner("Generating response..."):
72
  try:
73
- response = st.session_state["qa_pipeline"](f"Q: {user_input}", max_length=300)
74
  generated_text = response[0]["generated_text"]
75
- st.session_state["conversation"].append(("You", user_input))
76
  st.session_state["conversation"].append(("Model", generated_text))
 
77
  except Exception as e:
78
  st.error(f"Error generating response: {e}")
79
 
80
  # Clear Conversation
81
  if clear_conversation_button:
82
  st.session_state["conversation"] = []
83
- st.success("Conversation cleared.")
 
24
  st.session_state["qa_pipeline"] = None
25
  if "conversation" not in st.session_state:
26
  st.session_state["conversation"] = []
27
+ if "user_input" not in st.session_state:
28
+ st.session_state["user_input"] = ""
29
 
30
  # Load Model
31
  if load_model_button:
 
60
  st.subheader("Conversation")
61
  for idx, (speaker, message) in enumerate(st.session_state["conversation"]):
62
  if speaker == "You":
63
+ st.text_area(f"You ({idx}):", message, key=f"you_{idx}", disabled=True)
64
  else:
65
+ st.text_area(f"Model ({idx}):", message, key=f"model_{idx}", disabled=True)
66
 
67
  # Input Area
68
  with input_container:
69
  if st.session_state["qa_pipeline"]:
70
+ user_input = st.text_input(
71
+ "Enter your query:",
72
+ value=st.session_state["user_input"], # Use session state for persistence
73
+ key="chat_input",
74
+ label_visibility="visible",
75
+ on_change=lambda: st.session_state.update({"user_input": st.session_state.chat_input}),
76
+ )
77
  if st.button("Send", key="send_button"):
78
+ if st.session_state["user_input"]:
79
  with st.spinner("Generating response..."):
80
  try:
81
+ response = st.session_state["qa_pipeline"](f"Q: {st.session_state['user_input']}", max_length=300)
82
  generated_text = response[0]["generated_text"]
83
+ st.session_state["conversation"].append(("You", st.session_state["user_input"]))
84
  st.session_state["conversation"].append(("Model", generated_text))
85
+ st.session_state["user_input"] = "" # Clear input after submission
86
  except Exception as e:
87
  st.error(f"Error generating response: {e}")
88
 
89
  # Clear Conversation
90
  if clear_conversation_button:
91
  st.session_state["conversation"] = []
92
+ st.success("Conversation cleared.")