Im trying to create a chat engine, i have the thumbs up and down, but after clicking on it, the print statement doesnt activate.
Attaching snippet here -
for text in response.response_gen:
full_response += text + " "
time.sleep(0.05)
message_placeholder.markdown(full_response + "▌")
message_placeholder.markdown(full_response)
st.session_state.messages.append({"role": "assistant", "content": full_response})
torch.cuda.empty_cache()
col1, col2, col3, col4 = st.columns([3,3,0.5,0.5])
with col3:
if st.button(":thumbsup:"):
print("I have been liked")
with col4:
if st.button(":thumbsdown:"):
print("I have been disliked")
im pasting more additional code snippet here - @dataprofessor@Goyo
when the buttons are outside the if condition, it works properly, when inside, it doent activate
if prompt := st.chat_input("What can I help you with?"):
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
with st.chat_message("assistant"):
message_placeholder = st.empty()
full_response = ""
response = query_engine.query(prompt)
# print('###################################################')
# for idx, res in enumerate(response.source_nodes):
# print(f'Matched chunk {idx + 1} {response.source_nodes[idx]}')
# print('###################################################')
#response.print_response_stream()
for text in response.response_gen:
full_response += text + " "
time.sleep(0.05)
message_placeholder.markdown(full_response + "▌")
message_placeholder.markdown(full_response)
st.session_state.messages.append({"role": "assistant", "content": full_response})
torch.cuda.empty_cache()
col1, col2, col3, col4 = st.columns([3, 3, 0.5, 0.5])
with col3:
if st.button(":thumbsup:"):
print("I have been liked")
with col4:
if st.button(":thumbsdown:"):
print("I have been disliked")
i tried to add this print statement here - it seems like the flow doesnot wait for the button, it just executes and the button prints None instead of the print statements ive triggered
with st.chat_message("assistant"):
message_placeholder = st.empty()
full_response = ""
col1, col2, col3, col4 = st.columns([3, 3, 0.5, 0.5])
with col3:
if st.button(":thumbsup:"):
print("I have been liked")
with col4:
if st.button(":thumbsdown:"):
print("I have been disliked")
print("im done")
This doesn’t work because the scripts rerun as soon as you click a button. As the script runs again, prompt is no longer truish and the code in the if block is not executed.