currently its possible but ill advised we are working on it.
Such a great component!! Now I can make a QA system with it, thank you so much! Iâm wondering will you add function of returning picture or datatable?
And also are you planning to add support for â\nâ or html?
Didnât have any plan for adding HTML or Markdown support, not sure if â\nâ works, if not will add that soon. We can try to add HTML & MarkDown support I am afraid we might have to write a lot more CSS for that., will try it after January 3, 2022 (Exams)
Thanks a lot! That would be so nice, and for datatable, pictures, html and markdown in reply, Iâve got a temporary solution
if type(output)==str:
message(output)
else:
message(âthe result isâ)
st.columns((1,10))
cols[1].write(output)
Hi @yashppawar
This looks super awesome! And I see you already managed to add it to the tracker thanks for your contribution
Happy Streamlitinâ
Fanilo
Great work. Will try this out
I think we may need a container with fixed height to make the page more like chat UI commonly used.
I have one question.
Iâm try âstreamlit-chatâ. but happened error following
ImportError: cannot import name âLiteralâ from âtypingâ (/usr/lib/python3.7/typing.py)
Traceback:
File "/usr/local/lib/python3.7/dist-packages/streamlit/script_runner.py", line 430, in _run_script
exec(code, module.__dict__)File "/content/app.py", line 7, in <module>
from streamlit_chat import messageFile "/usr/local/lib/python3.7/dist-packages/streamlit_chat/__init__.py", line 3, in <module>
from typing import Any, Literal, Optional, Union
```-----------
If youâre able to switch to an environment with python 3.8+ you should at least get past that import error.
See pep 586
If you need to work with 3.7, Iâd suggest opening an issue on the st-chat github.
Maybe they can include an option with typing_extensions or without Literal
Great work!
Is there a more recent example of this that I can look at ?
My text seems to show only the latest text and is not showing as the user text , is showing as the bot text instead.
Pls refer to my code , based on the example from above post , below.
Thanks!
import streamlit as st
from streamlit_chat import message
message_history= []
message("My message")
for message_ in message_history:
message(message_) # display all the previous message
placeholder = st.empty() # placeholder for latest message
input_ = st.text_input("you:")
message_history.append(input_)
with placeholder.container():
message(message_history[-1]) # display the latest message
Ok updated but still issues with new message ⊠if the user pressed enter twice , there should be 2 lines right ?
import streamlit as st
from streamlit_chat import messagemessage_history =
message(âWelcome to Streamlit-Chatâ)
message(âWelcome to Streamlit-Chat2â)for message_ in message_history:
message(message_) # display all the previous messageplaceholder = st.empty() # placeholder for latest message
input_ = st.text_input(âyou:â)
message_history.append(input_)with placeholder.container():
message(message_history, is_user=True) # display the latest messagefor t in message_history:
message(t, is_user=True) # why not new chat line ???
ok ⊠I got to something like this using session_state âŠ
import streamlit as st
from streamlit_chat import messagemessage(âWelcome to Streamlit-Chatâ)
if âmessage_historyâ not in st.session_state:
st.session_state.message_history =for message_ in st.session_state.message_history:
message(message_,is_user=True) # display all the previous messageplaceholder = st.empty() # placeholder for latest message
input_ = st.text_input(âyouâ)
st.session_state.message_history.append(input_)with placeholder.container():
message( st.session_state.message_history[-1], is_user=True) # display the latest message
Thanks, @yashppawar for this excellent library.
I am able to manage user input at the base. however, if the response is an HTML page then it is displayed below the text box. I did not face this issue when the response is text.
Your quick help is appreciated.
Hi, Thanks for the chat interface library.
Currently I am facing issue on how to include media into the bot response as the behaviour of respond I dont quite understand. What I want is to include the image below the bot response, instead it goes outside the chat container
message(message,
is_user=False,
avatar_style="adventurer", # change this for different user icon
seed=123, # or the seed for different user icons
)
supported styles - https://avatars.dicebear.com/styles
sorry it does not support media