mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-09-15 22:19:28 +00:00
Native data AI application framework based on AWEL+AGENT (#1152)
Co-authored-by: Fangyin Cheng <staneyffer@gmail.com> Co-authored-by: lcx01800250 <lcx01800250@alibaba-inc.com> Co-authored-by: licunxing <864255598@qq.com> Co-authored-by: Aralhi <xiaoping0501@gmail.com> Co-authored-by: xuyuan23 <643854343@qq.com> Co-authored-by: aries_ckt <916701291@qq.com> Co-authored-by: hzh97 <2976151305@qq.com>
This commit is contained in:
@@ -6,6 +6,9 @@ from dbgpt.util.json_utils import serialize
|
||||
|
||||
|
||||
class Vis:
|
||||
def render_prompt(self):
|
||||
return None
|
||||
|
||||
async def generate_param(self, **kwargs) -> Optional[str]:
|
||||
"""
|
||||
Display corresponding content using vis protocol
|
||||
|
@@ -44,18 +44,20 @@ def default_chart_type_promot() -> str:
|
||||
|
||||
|
||||
class VisChart(Vis):
|
||||
async def generate_content(self, **kwargs) -> Optional[str]:
|
||||
chart = kwargs.get("chart", None)
|
||||
sql_2_df_func = kwargs.get("sql_2_df_func", None)
|
||||
def render_prompt(self):
|
||||
return default_chart_type_promot()
|
||||
|
||||
if not chart or not sql_2_df_func:
|
||||
async def generate_param(self, **kwargs) -> Optional[str]:
|
||||
chart = kwargs.get("chart", None)
|
||||
data_df = kwargs.get("data_df", None)
|
||||
|
||||
if not chart:
|
||||
raise ValueError(
|
||||
f"Parameter information is missing and {self.vis_tag} protocol conversion cannot be performed."
|
||||
)
|
||||
|
||||
sql = chart.get("sql", None)
|
||||
param = {}
|
||||
df = sql_2_df_func(sql)
|
||||
if not sql or len(sql) <= 0:
|
||||
return None
|
||||
|
||||
@@ -65,7 +67,7 @@ class VisChart(Vis):
|
||||
param["describe"] = chart.get("thought", "")
|
||||
|
||||
param["data"] = json.loads(
|
||||
df.to_json(orient="records", date_format="iso", date_unit="s")
|
||||
data_df.to_json(orient="records", date_format="iso", date_unit="s")
|
||||
)
|
||||
return param
|
||||
|
||||
|
@@ -7,16 +7,13 @@ from ..base import Vis
|
||||
class VisDashboard(Vis):
|
||||
async def generate_content(self, **kwargs) -> Optional[str]:
|
||||
charts = kwargs.get("charts", None)
|
||||
sql_2_df_func = kwargs.get("sql_2_df_func", None)
|
||||
title = kwargs.get("title", None)
|
||||
if not charts or not sql_2_df_func or not title:
|
||||
if not charts:
|
||||
raise ValueError(
|
||||
f"Parameter information is missing and {self.vis_tag} protocol conversion cannot be performed."
|
||||
)
|
||||
|
||||
chart_items = []
|
||||
if not charts or len(charts) <= 0:
|
||||
return f"""Have no chart data!"""
|
||||
for chart in charts:
|
||||
param = {}
|
||||
sql = chart.get("sql", "")
|
||||
@@ -25,10 +22,15 @@ class VisDashboard(Vis):
|
||||
param["title"] = chart.get("title", "")
|
||||
param["describe"] = chart.get("thought", "")
|
||||
try:
|
||||
df = sql_2_df_func(sql)
|
||||
param["data"] = json.loads(
|
||||
df.to_json(orient="records", date_format="iso", date_unit="s")
|
||||
)
|
||||
df = chart.get("data", None)
|
||||
err_msg = chart.get("err_msg", None)
|
||||
if not df:
|
||||
param["err_msg"] = err_msg
|
||||
else:
|
||||
param["data"] = json.loads(
|
||||
df.to_json(orient="records", date_format="iso", date_unit="s")
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
param["data"] = []
|
||||
param["err_msg"] = str(e)
|
||||
|
Reference in New Issue
Block a user