mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-06-07 07:55:16 +02:00
feat: render QA in UI
This commit is contained in:
parent
c8742dbdc0
commit
ef080d57c8
7 changed files with 34 additions and 80 deletions
|
|
@ -674,6 +674,7 @@ async def get_workflow_run(
|
|||
"gathered_context": run.gathered_context,
|
||||
"call_type": run.call_type,
|
||||
"logs": run.logs,
|
||||
"annotations": run.annotations,
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -21,3 +21,4 @@ class WorkflowRunResponseSchema(BaseModel):
|
|||
gathered_context: dict | None = None
|
||||
call_type: CallType
|
||||
logs: Dict[str, Any] | None = None
|
||||
annotations: Dict[str, Any] | None = None
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
"""LLM configuration resolution and token usage accumulation."""
|
||||
|
||||
from api.constants import MPS_API_URL
|
||||
from api.db import db_client
|
||||
from api.db.models import WorkflowRunModel
|
||||
|
||||
|
|
@ -14,6 +15,8 @@ def _provider_base_url(provider: str | None, endpoint: str = "") -> str | None:
|
|||
return "https://generativelanguage.googleapis.com/v1beta/openai/"
|
||||
if provider == "azure":
|
||||
return endpoint or None
|
||||
if provider == "dograh":
|
||||
return f"{MPS_API_URL}/api/v1/llm"
|
||||
return None
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -98,15 +98,6 @@ async def _run_qa_nodes(
|
|||
logger.error(f"QA analysis failed for node '{node_name}': {e}")
|
||||
results[f"qa_{node_id}"] = {"error": str(e)}
|
||||
|
||||
# Collect all unique tags across all QA node results for top-level filtering
|
||||
all_tags: set[str] = set()
|
||||
for result in results.values():
|
||||
for node_result in result.get("node_results", {}).values():
|
||||
if isinstance(node_result, dict):
|
||||
all_tags.update(node_result.get("tags", []))
|
||||
if all_tags:
|
||||
results["tags"] = sorted(all_tags)
|
||||
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -219,15 +210,27 @@ async def run_integrations_post_workflow_run(_ctx, workflow_run_id: int):
|
|||
)
|
||||
|
||||
if qa_results:
|
||||
await db_client.update_workflow_run(
|
||||
workflow_run_id, annotations=qa_results
|
||||
)
|
||||
|
||||
# Add QA token usage to workflow run's usage_info
|
||||
await _update_usage_info_with_qa_tokens(
|
||||
workflow_run_id, workflow_run, qa_results
|
||||
)
|
||||
|
||||
# Collect unique tags across all QA node results for top-level filtering
|
||||
all_tags: set[str] = set()
|
||||
for qa_key, qa_result in qa_results.items():
|
||||
for node_result in qa_result.get("node_results", {}).values():
|
||||
for tag in node_result.get("tags", []):
|
||||
if isinstance(tag, str):
|
||||
all_tags.add(tag)
|
||||
elif isinstance(tag, dict) and "tag" in tag:
|
||||
all_tags.add(tag["tag"])
|
||||
if all_tags:
|
||||
qa_results["tags"] = sorted(all_tags)
|
||||
|
||||
await db_client.update_workflow_run(
|
||||
workflow_run_id, annotations=qa_results
|
||||
)
|
||||
|
||||
# Re-fetch workflow_run to get updated annotations
|
||||
workflow_run, _ = await db_client.get_workflow_run_with_context(
|
||||
workflow_run_id
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue