from ai.analysis.run.abstract_analyzer import AbstractAnalyzer
from ai.analysis.run.analysis_result import AnalysisResult
from ai.analysis.run.assistant_run import AssistantRun
[docs]
class AssistantRunsAnalyzer(AbstractAnalyzer):
"""Analyzer that aggregates cost analyses for multiple assistant runs.
Attributes:
_assistant_runs (list[AssistantRun]): List of AssistantRun instances to analyze.
"""
[docs]
def __init__(self, runs: list[AssistantRun]):
"""Initialize with a list of assistant runs.
Args:
runs (list[AssistantRun]): AssistantRun instances to aggregate.
"""
self._assistant_runs: list[AssistantRun] = runs
[docs]
def get_cost_analysis(self) -> AnalysisResult:
"""Compute the combined cost analysis from all assistant runs.
Returns:
AnalysisResult: Aggregated cost analysis for all runs.
"""
return sum(
[assistant_run.get_cost_analysis() for assistant_run in self._assistant_runs],
AnalysisResult.empty(),
)