"""面向其他 Agent 的数据查询适配器。""" from __future__ import annotations from uuid import uuid4 from nl2sql.contracts import DataQueryRequest from nl2sql.streaming import stream_query_events from service.nl2sql.query_service import execute_query class DataQueryAgent: """只依赖公共查询服务,不直接调用其他 Agent 或基础设施。""" async def query(self, request: DataQueryRequest, **dependencies): """转发查询请求,缺省生成内部查询 ID。""" dependencies.setdefault("query_id", uuid4().hex) return await execute_query(request, **dependencies) async def stream(self, request: DataQueryRequest, **dependencies): """以结构化事件流转发查询,不暴露 SQL、结果行和异常消息。""" dependencies.setdefault("query_id", uuid4().hex) async for event in stream_query_events( request, query_runner=execute_query, **dependencies, ): yield event