fix webui: correct error messages

This commit is contained in:
liunux4odoo 2023-08-18 11:47:49 +08:00
parent c3627de005
commit d4cf77170a
2 changed files with 27 additions and 12 deletions

View File

@ -118,7 +118,7 @@ def knowledge_base_page(api: ApiRequest):
vector_store_type=vs_type,
embed_model=embed_model,
)
st.toast(ret["msg"])
st.toast(ret.get("msg", " "))
st.session_state["selected_kb_name"] = kb_name
st.experimental_rerun()
@ -140,10 +140,10 @@ def knowledge_base_page(api: ApiRequest):
):
for f in files:
ret = api.upload_kb_doc(f, kb)
if ret["code"] == 200:
st.toast(ret["msg"], icon="")
else:
st.toast(ret["msg"], icon="")
if msg := check_success_msg(ret):
st.toast(msg, icon="")
elif msg := check_error_msg(ret):
st.toast(msg, icon="")
st.session_state.files = []
st.divider()
@ -235,7 +235,7 @@ def knowledge_base_page(api: ApiRequest):
):
for row in selected_rows:
ret = api.delete_kb_doc(kb, row["file_name"], True)
st.toast(ret["msg"])
st.toast(ret.get("msg", " "))
st.experimental_rerun()
st.divider()
@ -262,6 +262,6 @@ def knowledge_base_page(api: ApiRequest):
use_container_width=True,
):
ret = api.delete_knowledge_base(kb)
st.toast(ret["msg"])
st.toast(ret.get("msg", " "))
time.sleep(1)
st.experimental_rerun()

View File

@ -232,15 +232,15 @@ class ApiRequest:
msg = f"无法连接API服务器请确认已执行python server\\api.py"
logger.error(msg)
logger.error(e)
yield {"code": 500, "errorMsg": msg}
yield {"code": 500, "msg": msg}
except httpx.ReadTimeout as e:
msg = f"API通信超时请确认已启动FastChat与API服务详见RADME '5. 启动 API 服务或 Web UI'"
logger.error(msg)
logger.error(e)
yield {"code": 500, "errorMsg": msg}
yield {"code": 500, "msg": msg}
except Exception as e:
logger.error(e)
yield {"code": 500, "errorMsg": str(e)}
yield {"code": 500, "msg": str(e)}
# 对话相关操作
@ -394,7 +394,7 @@ class ApiRequest:
return response.json()
except Exception as e:
logger.error(e)
return {"code": 500, "errorMsg": errorMsg or str(e)}
return {"code": 500, "msg": errorMsg or str(e)}
def list_knowledge_bases(
self,
@ -626,7 +626,22 @@ def check_error_msg(data: Union[str, dict, list], key: str = "errorMsg") -> str:
'''
return error message if error occured when requests API
'''
if isinstance(data, dict) and key in data:
if isinstance(data, dict):
if key in data:
return data[key]
if "code" in data and data["code"] != 200:
return data["msg"]
return ""
def check_success_msg(data: Union[str, dict, list], key: str = "msg") -> str:
'''
return error message if error occured when requests API
'''
if (isinstance(data, dict)
and key in data
and "code" in data
and data["code"] == 200):
return data[key]
return ""