mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-06-17 23:09:35 +00:00
- API routers, ACA modules, integrations (draft operators) - Docs, landing pages, scripts (launch readiness, scorecard) - Tests and CI workflow updates for Dealix Co-authored-by: Cursor <cursoragent@cursor.com>
42 lines
1.7 KiB
Python
42 lines
1.7 KiB
Python
"""Agent observability demo endpoints — evals and trace shapes."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from fastapi import APIRouter, Body
|
|
|
|
from auto_client_acquisition.agent_observability.safety_eval import evaluate_safety
|
|
from auto_client_acquisition.agent_observability.saudi_tone_eval import evaluate_saudi_tone
|
|
from auto_client_acquisition.agent_observability.trace_events import build_trace_event
|
|
|
|
router = APIRouter(prefix="/api/v1/agent-observability", tags=["agent_observability"])
|
|
|
|
|
|
@router.get("/demo")
|
|
async def demo() -> dict[str, Any]:
|
|
return {"ok": True, "message_ar": "تتبع وتقييم — اربط Langfuse في staging للإنتاج.", "demo": True}
|
|
|
|
|
|
@router.post("/eval/safety")
|
|
async def eval_safety(payload: dict[str, Any] = Body(default_factory=dict)) -> dict[str, Any]:
|
|
return evaluate_safety(str(payload.get("text_ar") or ""))
|
|
|
|
|
|
@router.post("/eval/saudi-tone")
|
|
async def eval_saudi_tone(payload: dict[str, Any] = Body(default_factory=dict)) -> dict[str, Any]:
|
|
return evaluate_saudi_tone(str(payload.get("text_ar") or ""))
|
|
|
|
|
|
@router.post("/trace/build")
|
|
async def trace_build(payload: dict[str, Any] = Body(default_factory=dict)) -> dict[str, Any]:
|
|
return build_trace_event(
|
|
workflow_name=str(payload.get("workflow_name") or "demo"),
|
|
agent_name=str(payload.get("agent_name") or "dealix"),
|
|
action_type=str(payload.get("action_type") or "draft"),
|
|
policy_result=str(payload.get("policy_result") or "approval_required"),
|
|
tool_called=payload.get("tool_called"),
|
|
outcome=payload.get("outcome"),
|
|
metadata=payload.get("metadata") if isinstance(payload.get("metadata"), dict) else {},
|
|
)
|