mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-08-11 13:12:18 +00:00
bugfix(ChatExcel): ChatExcel Language confusion bug
1.Fix ChatExcel Language confusion bug
This commit is contained in:
parent
1c5ed2808b
commit
f971fdb22d
@ -184,6 +184,8 @@ class PluginStatus(BaseModel):
|
|||||||
start_time = datetime.now().timestamp() * 1000
|
start_time = datetime.now().timestamp() * 1000
|
||||||
end_time: int = None
|
end_time: int = None
|
||||||
|
|
||||||
|
df: Any = None
|
||||||
|
|
||||||
|
|
||||||
class ApiCall:
|
class ApiCall:
|
||||||
agent_prefix = "<api-call>"
|
agent_prefix = "<api-call>"
|
||||||
@ -191,7 +193,8 @@ class ApiCall:
|
|||||||
name_prefix = "<name>"
|
name_prefix = "<name>"
|
||||||
name_end = "</name>"
|
name_end = "</name>"
|
||||||
|
|
||||||
def __init__(self, plugin_generator: Any = None, display_registry: Any = None):
|
|
||||||
|
def __init__(self, plugin_generator: Any = None, display_registry: Any = None, backend_rendering: bool = False):
|
||||||
# self.name: str = ""
|
# self.name: str = ""
|
||||||
# self.status: Status = Status.TODO.value
|
# self.status: Status = Status.TODO.value
|
||||||
# self.logo_url: str = None
|
# self.logo_url: str = None
|
||||||
@ -204,6 +207,7 @@ class ApiCall:
|
|||||||
self.plugin_generator = plugin_generator
|
self.plugin_generator = plugin_generator
|
||||||
self.display_registry = display_registry
|
self.display_registry = display_registry
|
||||||
self.start_time = datetime.now().timestamp() * 1000
|
self.start_time = datetime.now().timestamp() * 1000
|
||||||
|
self.backend_rendering: bool = True
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"ApiCall(name={self.name}, status={self.status}, args={self.args})"
|
return f"ApiCall(name={self.name}, status={self.status}, args={self.args})"
|
||||||
@ -362,6 +366,13 @@ class ApiCall:
|
|||||||
return result.decode("utf-8")
|
return result.decode("utf-8")
|
||||||
|
|
||||||
def to_view_antv_vis(self, api_status: PluginStatus):
|
def to_view_antv_vis(self, api_status: PluginStatus):
|
||||||
|
if self.backend_rendering:
|
||||||
|
html_table = api_status.df.to_html(index=False, escape=False, sparsify=False)
|
||||||
|
table_str = "".join(html_table.split())
|
||||||
|
table_str = table_str.replace("\n", " ")
|
||||||
|
html = f""" \n<div><b>[SQL]{api_status.args["sql"]}</b></div><div class="w-full overflow-auto">{table_str}</div>\n """
|
||||||
|
return html
|
||||||
|
else:
|
||||||
api_call_element = ET.Element("chart-view")
|
api_call_element = ET.Element("chart-view")
|
||||||
api_call_element.text = self.__to_antv_vis_param(api_status)
|
api_call_element.text = self.__to_antv_vis_param(api_status)
|
||||||
result = ET.tostring(api_call_element, encoding="utf-8")
|
result = ET.tostring(api_call_element, encoding="utf-8")
|
||||||
@ -417,6 +428,7 @@ class ApiCall:
|
|||||||
param = {
|
param = {
|
||||||
"df": sql_run_func(sql),
|
"df": sql_run_func(sql),
|
||||||
}
|
}
|
||||||
|
value.df = param['df']
|
||||||
if self.display_registry.is_valid_command(value.name):
|
if self.display_registry.is_valid_command(value.name):
|
||||||
value.api_result = self.display_registry.call(
|
value.api_result = self.display_registry.call(
|
||||||
value.name, **param
|
value.name, **param
|
||||||
@ -456,6 +468,7 @@ class ApiCall:
|
|||||||
sql = value.args["sql"]
|
sql = value.args["sql"]
|
||||||
if sql is not None and len(sql) > 0:
|
if sql is not None and len(sql) > 0:
|
||||||
data_df = sql_run_func(sql)
|
data_df = sql_run_func(sql)
|
||||||
|
value.df = data_df
|
||||||
value.api_result = data_df.apply(lambda row: row.to_dict(), axis=1).to_list()
|
value.api_result = data_df.apply(lambda row: row.to_dict(), axis=1).to_list()
|
||||||
value.status = Status.COMPLETED.value
|
value.status = Status.COMPLETED.value
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user