Update app.py
Browse files
app.py
CHANGED
|
@@ -7,18 +7,17 @@ from tools.sql_tool import SQLTool
|
|
| 7 |
from tools.ts_preprocess import build_timeseries
|
| 8 |
|
| 9 |
DUCKDB_PATH = os.getenv("DUCKDB_PATH", "alm.duckdb")
|
| 10 |
-
DEFAULT_PATH = "my_db.main.masterdataset_v"
|
| 11 |
|
| 12 |
sql_tool = SQLTool(DUCKDB_PATH)
|
|
|
|
| 13 |
|
| 14 |
INTRO = f"""
|
| 15 |
### ALM LLM — Demo
|
| 16 |
|
| 17 |
Connected to **DuckDB** at `{DUCKDB_PATH}`
|
| 18 |
-
Using table **{
|
| 19 |
"""
|
| 20 |
|
| 21 |
-
# ---------------------- Handlers ----------------------
|
| 22 |
def run_nl(nl_query: str):
|
| 23 |
if not nl_query or not nl_query.strip():
|
| 24 |
return pd.DataFrame(), "", "Please enter a query.", pd.DataFrame(), pd.DataFrame()
|
|
@@ -32,7 +31,6 @@ def run_nl(nl_query: str):
|
|
| 32 |
cf, gap = pd.DataFrame(), pd.DataFrame()
|
| 33 |
return df, sql.strip(), why, cf, gap
|
| 34 |
|
| 35 |
-
|
| 36 |
def run_sql(sql_text: str):
|
| 37 |
if not sql_text or not sql_text.strip():
|
| 38 |
return pd.DataFrame(), "Please paste a SQL statement.", pd.DataFrame(), pd.DataFrame()
|
|
@@ -46,7 +44,6 @@ def run_sql(sql_text: str):
|
|
| 46 |
cf, gap = pd.DataFrame(), pd.DataFrame()
|
| 47 |
return df, "OK", cf, gap
|
| 48 |
|
| 49 |
-
# ---------------------- UI ----------------------
|
| 50 |
with gr.Blocks(title="ALM LLM") as demo:
|
| 51 |
gr.Markdown(INTRO)
|
| 52 |
|
|
@@ -61,11 +58,7 @@ with gr.Blocks(title="ALM LLM") as demo:
|
|
| 61 |
btn.click(fn=run_nl, inputs=[nl], outputs=[df_out, sql_out, why_out, cf_out, gap_out])
|
| 62 |
|
| 63 |
with gr.Tab("Run Raw SQL"):
|
| 64 |
-
sql_in = gr.Code(
|
| 65 |
-
label="SQL",
|
| 66 |
-
language="sql",
|
| 67 |
-
value=f"SELECT * FROM {DEFAULT_PATH} LIMIT 20;",
|
| 68 |
-
)
|
| 69 |
btn2 = gr.Button("Execute")
|
| 70 |
df2 = gr.Dataframe(label="Result", interactive=True)
|
| 71 |
status = gr.Textbox(label="Status", interactive=False)
|
|
|
|
| 7 |
from tools.ts_preprocess import build_timeseries
|
| 8 |
|
| 9 |
DUCKDB_PATH = os.getenv("DUCKDB_PATH", "alm.duckdb")
|
|
|
|
| 10 |
|
| 11 |
sql_tool = SQLTool(DUCKDB_PATH)
|
| 12 |
+
RESOLVED_PATH = sql_tool.get_full_table_path() # e.g., my_db.main.masterdataset_v or main.masterdataset_v
|
| 13 |
|
| 14 |
INTRO = f"""
|
| 15 |
### ALM LLM — Demo
|
| 16 |
|
| 17 |
Connected to **DuckDB** at `{DUCKDB_PATH}`
|
| 18 |
+
Using table **{RESOLVED_PATH}** (auto-resolved).
|
| 19 |
"""
|
| 20 |
|
|
|
|
| 21 |
def run_nl(nl_query: str):
|
| 22 |
if not nl_query or not nl_query.strip():
|
| 23 |
return pd.DataFrame(), "", "Please enter a query.", pd.DataFrame(), pd.DataFrame()
|
|
|
|
| 31 |
cf, gap = pd.DataFrame(), pd.DataFrame()
|
| 32 |
return df, sql.strip(), why, cf, gap
|
| 33 |
|
|
|
|
| 34 |
def run_sql(sql_text: str):
|
| 35 |
if not sql_text or not sql_text.strip():
|
| 36 |
return pd.DataFrame(), "Please paste a SQL statement.", pd.DataFrame(), pd.DataFrame()
|
|
|
|
| 44 |
cf, gap = pd.DataFrame(), pd.DataFrame()
|
| 45 |
return df, "OK", cf, gap
|
| 46 |
|
|
|
|
| 47 |
with gr.Blocks(title="ALM LLM") as demo:
|
| 48 |
gr.Markdown(INTRO)
|
| 49 |
|
|
|
|
| 58 |
btn.click(fn=run_nl, inputs=[nl], outputs=[df_out, sql_out, why_out, cf_out, gap_out])
|
| 59 |
|
| 60 |
with gr.Tab("Run Raw SQL"):
|
| 61 |
+
sql_in = gr.Code(label="SQL", language="sql", value=f"SELECT * FROM {RESOLVED_PATH} LIMIT 20;")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
btn2 = gr.Button("Execute")
|
| 63 |
df2 = gr.Dataframe(label="Result", interactive=True)
|
| 64 |
status = gr.Textbox(label="Status", interactive=False)
|