From b161985d79a8f15ee815d7afa48e1eedbf6f7774 Mon Sep 17 00:00:00 2001 From: liunux4odoo <41217877+liunux4odoo@users.noreply.github.com> Date: Tue, 19 Sep 2023 10:09:40 +0800 Subject: [PATCH] =?UTF-8?q?fix=20#1519:=20streamlit-chatbox=E6=97=A7?= =?UTF-8?q?=E7=89=88BUG=EF=BC=8C=E4=BD=86=E6=96=B0=E7=89=88=E6=9C=89?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E9=97=AE=E9=A2=98=EF=BC=8C=E5=85=88=E5=9C=A8?= =?UTF-8?q?webui=E4=B8=AD=E4=BD=9C=E5=A4=84=E7=90=86=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E9=99=90=E5=AE=9Achatbox=E7=89=88=E6=9C=AC=20(#1525)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close #1519 --- requirements.txt | 2 +- requirements_webui.txt | 2 +- webui_pages/dialogue/dialogue.py | 18 +++++++++++------- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/requirements.txt b/requirements.txt index 5714788..5699d46 100644 --- a/requirements.txt +++ b/requirements.txt @@ -34,7 +34,7 @@ pandas~=2.0.3 streamlit>=1.26.0 streamlit-option-menu>=0.3.6 streamlit-antd-components>=0.1.11 -streamlit-chatbox>=1.1.6 +streamlit-chatbox >=1.1.6, <=1.1.7 streamlit-aggrid>=0.3.4.post3 httpx~=0.24.1 watchdog diff --git a/requirements_webui.txt b/requirements_webui.txt index 8d49ae0..f67f968 100644 --- a/requirements_webui.txt +++ b/requirements_webui.txt @@ -3,7 +3,7 @@ pandas~=2.0.3 streamlit>=1.26.0 streamlit-option-menu>=0.3.6 streamlit-antd-components>=0.1.11 -streamlit-chatbox>=1.1.6 +streamlit-chatbox >=1.1.6, <=1.1.7 streamlit-aggrid>=0.3.4.post3 httpx~=0.24.1 nltk diff --git a/webui_pages/dialogue/dialogue.py b/webui_pages/dialogue/dialogue.py index a90d3c0..b0b7135 100644 --- a/webui_pages/dialogue/dialogue.py +++ b/webui_pages/dialogue/dialogue.py @@ -28,7 +28,11 @@ def get_messages_history(history_len: int) -> List[Dict]: "content": content[0] if content else "", } - history = chat_box.filter_history(100000, filter) # workaround before upgrading streamlit-chatbox. + # workaround before upgrading streamlit-chatbox. + def stop(h): + return False + + history = chat_box.filter_history(history_len=100000, filter=filter, stop=stop) user_count = 0 i = 1 for i in range(1, len(history) + 1): @@ -183,9 +187,9 @@ def dialogue_page(api: ApiRequest): st.error(error_msg) elif chunk := d.get("answer"): text += chunk - chat_box.update_msg(text, 0) - chat_box.update_msg(text, 0, streaming=False) - chat_box.update_msg("\n\n".join(d.get("docs", [])), 1, streaming=False) + chat_box.update_msg(text, element_index=0) + chat_box.update_msg(text, element_index=0, streaming=False) + chat_box.update_msg("\n\n".join(d.get("docs", [])), element_index=1, streaming=False) elif dialogue_mode == "搜索引擎问答": chat_box.ai_say([ f"正在执行 `{search_engine}` 搜索...", @@ -202,9 +206,9 @@ def dialogue_page(api: ApiRequest): st.error(error_msg) elif chunk := d.get("answer"): text += chunk - chat_box.update_msg(text, 0) - chat_box.update_msg(text, 0, streaming=False) - chat_box.update_msg("\n\n".join(d.get("docs", [])), 1, streaming=False) + chat_box.update_msg(text, element_index=0) + chat_box.update_msg(text, element_index=0, streaming=False) + chat_box.update_msg("\n\n".join(d.get("docs", [])), element_index=1, streaming=False) now = datetime.now() with st.sidebar: