feat:增加分析进度接口

This commit is contained in:
2026-10-10 07:26:24 -07:00
parent e3699d1a30
commit cd5a2b4d8f
15 changed files with 632 additions and 143 deletions
+27 -3
View File
@@ -60,21 +60,45 @@ def request_summary(context: InputContext) -> JsonObject:
def data_file_summary(item: RequestDataFile) -> JsonObject:
"""每个文件只给表名、label、行数和列名;列概况由 describe_data 按需查看。问答节点也用它"""
"""每个文件只给表名、label、行数和列名;列概况由 describe_data 按需查看。问答节点也用它
上传分析完成时多给一句说明和列的含义(summary、column_meanings),没有分析结果时不出现
"""
insights = item.insights
meanings: dict[tuple[str, str], str] = {}
if insights is not None:
for column in insights.columns:
# 含义和列名一样没有信息量;有单位的写在后面
if column.label != column.name or column.unit:
meanings[(column.table, column.name)] = (
f"{column.label}({column.unit})" if column.unit else column.label
)
tables: list[JsonObject] = []
for table in item.tables:
shown = table.columns[:SUMMARY_COLUMNS]
summary: JsonObject = {
"table": table.table,
"label": table.label,
"rows": table.rows,
"columns": [column.name for column in table.columns[:SUMMARY_COLUMNS]],
"columns": [column.name for column in shown],
}
if len(table.columns) > SUMMARY_COLUMNS:
summary["column_count"] = len(table.columns)
column_meanings = {
column.name: meanings[(table.table, column.name)]
for column in shown
if (table.table, column.name) in meanings
}
if column_meanings:
summary["column_meanings"] = column_meanings
tables.append(summary)
return {
result: JsonObject = {
"file_id": item.file_id,
"name": item.name,
"attached_this_turn": item.attached_this_turn,
"tables": tables,
}
if insights is not None and insights.summary:
result["summary"] = insights.summary
return result