backend: normalize returns for evals (items, total); ensure title to … (#2329)
This commit is contained in:
@@ -650,7 +650,11 @@ class AgentDB:
|
||||
try:
|
||||
async with self.Session() as session:
|
||||
db_page = page - 1 # offset logic is 0 based
|
||||
query = select(TaskModel).filter(TaskModel.organization_id == organization_id)
|
||||
query = (
|
||||
select(TaskModel, WorkflowRunModel.workflow_permanent_id)
|
||||
.join(WorkflowRunModel, TaskModel.workflow_run_id == WorkflowRunModel.workflow_run_id, isouter=True)
|
||||
.filter(TaskModel.organization_id == organization_id)
|
||||
)
|
||||
if task_status:
|
||||
query = query.filter(TaskModel.status.in_(task_status))
|
||||
if workflow_run_id:
|
||||
@@ -665,8 +669,42 @@ class AgentDB:
|
||||
.limit(page_size)
|
||||
.offset(db_page * page_size)
|
||||
)
|
||||
tasks = (await session.scalars(query)).all()
|
||||
return [convert_to_task(task, debug_enabled=self.debug_enabled) for task in tasks]
|
||||
|
||||
results = (await session.execute(query)).all()
|
||||
|
||||
return [
|
||||
convert_to_task(task, debug_enabled=self.debug_enabled, workflow_permanent_id=workflow_permanent_id)
|
||||
for task, workflow_permanent_id in results
|
||||
]
|
||||
except SQLAlchemyError:
|
||||
LOG.error("SQLAlchemyError", exc_info=True)
|
||||
raise
|
||||
except Exception:
|
||||
LOG.error("UnexpectedError", exc_info=True)
|
||||
raise
|
||||
|
||||
async def get_tasks_count(
|
||||
self,
|
||||
organization_id: str,
|
||||
task_status: list[TaskStatus] | None = None,
|
||||
workflow_run_id: str | None = None,
|
||||
only_standalone_tasks: bool = False,
|
||||
application: str | None = None,
|
||||
) -> int:
|
||||
try:
|
||||
async with self.Session() as session:
|
||||
count_query = (
|
||||
select(func.count()).select_from(TaskModel).filter(TaskModel.organization_id == organization_id)
|
||||
)
|
||||
if task_status:
|
||||
count_query = count_query.filter(TaskModel.status.in_(task_status))
|
||||
if workflow_run_id:
|
||||
count_query = count_query.filter(TaskModel.workflow_run_id == workflow_run_id)
|
||||
if only_standalone_tasks:
|
||||
count_query = count_query.filter(TaskModel.workflow_run_id.is_(None))
|
||||
if application:
|
||||
count_query = count_query.filter(TaskModel.application == application)
|
||||
return (await session.execute(count_query)).scalar_one()
|
||||
except SQLAlchemyError:
|
||||
LOG.error("SQLAlchemyError", exc_info=True)
|
||||
raise
|
||||
@@ -1527,6 +1565,25 @@ class AgentDB:
|
||||
LOG.error("SQLAlchemyError", exc_info=True)
|
||||
raise
|
||||
|
||||
async def get_workflow_runs_count(
|
||||
self,
|
||||
organization_id: str,
|
||||
status: list[WorkflowRunStatus] | None = None,
|
||||
) -> int:
|
||||
try:
|
||||
async with self.Session() as session:
|
||||
count_query = (
|
||||
select(func.count())
|
||||
.select_from(WorkflowRunModel)
|
||||
.filter(WorkflowRunModel.organization_id == organization_id)
|
||||
)
|
||||
if status:
|
||||
count_query = count_query.filter(WorkflowRunModel.status.in_(status))
|
||||
return (await session.execute(count_query)).scalar_one()
|
||||
except SQLAlchemyError:
|
||||
LOG.error("SQLAlchemyError", exc_info=True)
|
||||
raise
|
||||
|
||||
async def get_workflow_runs_for_workflow_permanent_id(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
|
||||
Reference in New Issue
Block a user