feat:投顾agent接入nl2sql能力
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
"""工作台到投顾 Agent 的客户数据查询代理。"""
|
||||
from __future__ import annotations
|
||||
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from model.sys_user import SysUser
|
||||
from schemas.advisor import AdvisorDataQueryReq
|
||||
from service.advisor.agent_client import get_agent_client
|
||||
from service.advisor.permissions import ensure_customer_owned
|
||||
|
||||
|
||||
async def query_customer_data(
|
||||
db: AsyncSession,
|
||||
user: SysUser,
|
||||
*,
|
||||
auth_header: str,
|
||||
trace_id: str,
|
||||
req: AdvisorDataQueryReq,
|
||||
) -> dict:
|
||||
"""先做工作台归属校验,再透传到 Agent;customer_id 不由 Agent 客户端覆盖。"""
|
||||
await ensure_customer_owned(db, user.id, req.customer_id)
|
||||
payload = req.model_dump(exclude_none=True)
|
||||
result = await get_agent_client().data_query(
|
||||
payload,
|
||||
auth_header=auth_header,
|
||||
trace_id=trace_id,
|
||||
)
|
||||
data = result["data"] or {}
|
||||
data.pop("sql", None)
|
||||
if result["warning"]:
|
||||
data["warning"] = result["warning"]
|
||||
return data
|
||||
Reference in New Issue
Block a user