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

View File

@ -232,15 +232,15 @@ class ApiRequest:
msg = f"无法连接API服务器请确认已执行python server\\api.py" msg = f"无法连接API服务器请确认已执行python server\\api.py"
logger.error(msg) logger.error(msg)
logger.error(e) logger.error(e)
yield {"code": 500, "errorMsg": msg} yield {"code": 500, "msg": msg}
except httpx.ReadTimeout as e: except httpx.ReadTimeout as e:
msg = f"API通信超时请确认已启动FastChat与API服务详见RADME '5. 启动 API 服务或 Web UI'" msg = f"API通信超时请确认已启动FastChat与API服务详见RADME '5. 启动 API 服务或 Web UI'"
logger.error(msg) logger.error(msg)
logger.error(e) logger.error(e)
yield {"code": 500, "errorMsg": msg} yield {"code": 500, "msg": msg}
except Exception as e: except Exception as e:
logger.error(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() return response.json()
except Exception as e: except Exception as e:
logger.error(e) logger.error(e)
return {"code": 500, "errorMsg": errorMsg or str(e)} return {"code": 500, "msg": errorMsg or str(e)}
def list_knowledge_bases( def list_knowledge_bases(
self, 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 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 data[key]
return "" return ""