feat:增加分析进度接口
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user