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:
明天
2024-02-07 17:43:27 +08:00
committed by GitHub
parent dbb9ac83b1
commit d5afa6e206
328 changed files with 22606 additions and 3282 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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)