nl-sql / app /components /show_working.py
liovina's picture
Deploy NL_SQL HEAD to HF Space
424ea19 verified
Raw
History Blame Contribute Delete
2.19 kB
"""Show-working expander: pipeline trace, metadata, shape, rationale."""
from __future__ import annotations
from typing import Any
import pandas as pd
import streamlit as st
from components.output import confidence_label
from i18n import t
from nl_sql.agent.graph import PipelineRunResult
def render_show_working(result: PipelineRunResult) -> None:
with st.expander(t("show_working")):
trace_rows: list[dict[str, Any]] = []
for entry in result.trace:
trace_rows.append(
{
"node": str(entry.get("node", "?")),
"model": str(entry.get("model", "β€”")),
"tokens_in": entry.get("input_tokens", "β€”"),
"tokens_out": entry.get("output_tokens", "β€”"),
"confidence": entry.get("confidence", "β€”"),
}
)
if trace_rows:
st.markdown(f"**{t('trace_header')}**")
st.dataframe(
pd.DataFrame(trace_rows),
use_container_width=True,
hide_index=True,
)
col_a, col_b = st.columns(2)
with col_a:
st.markdown(f"**{t('meta_header')}**")
conf_label = confidence_label(result.confidence)
st.markdown(f"- {t('confidence_label')}: **{conf_label}** ({result.confidence:.2f})")
st.markdown(f"- {t('repair_attempted')}: {result.repair_attempted}")
st.markdown(f"- {t('db_field')}: `{result.db_id}`")
with col_b:
st.markdown(f"**{t('shape_header')}**")
if result.outcome and result.outcome.result:
st.markdown(f"- {t('rows_returned')}: {result.outcome.result.row_count}")
cols = ", ".join(result.outcome.result.columns) or "β€”"
st.markdown(f"- {t('columns_field')}: {cols}")
else:
st.markdown(f"- {t('no_rows')}")
if result.rationale:
st.markdown(f"**{t('rationale_header')}**")
st.write(result.rationale)
if result.error_kind:
st.error(f"{t('error_kind')}: {result.error_kind} β€” {result.error_message}")