袁聪的第一次提交,包含nl2sql,行情数据,场外申购

This commit is contained in:
2026-09-10 09:23:22 +08:00
parent 46fc976b24
commit 5907fcd6d2
49 changed files with 6801 additions and 33 deletions
+15 -1
View File
@@ -88,13 +88,27 @@ class ToolExecutor:
record = ToolCallRecord(
tool_name=name, status="succeeded",
input_summary={key: "[redacted]" for key in arguments},
output_summary={"result_type": type(output).__name__},
output_summary=self._output_summary(output),
)
await self._audit(name, intent, context, "succeeded", "ok")
reference = SourceReference(source_type="tool", source_id=f"{context.trace_id}:{name}",
title=name)
return ToolExecution(output=output, record=record, references=(reference,))
@staticmethod
def _output_summary(output: Any) -> dict[str, Any]:
summary: dict[str, Any] = {"result_type": type(output).__name__}
if not isinstance(output, dict):
return summary
summary["status"] = output.get("status")
audit = output.get("audit")
if isinstance(audit, dict):
summary["query_plan"] = audit.get("query_plan")
summary["generated_sql"] = audit.get("generated_sql")
summary["permission_check"] = audit.get("permission_check")
summary["execution"] = audit.get("execution")
return summary
async def _audit(
self, name: str, intent: str, context: RequestContext, status: str, reason: str
) -> None: