ai-station/.venv/lib/python3.12/site-packages/traceloop/sdk/experiment/model.py

106 lines
2.6 KiB
Python
Raw Permalink Normal View History

from datetime import datetime
from typing import List, Dict, Any, Optional, Union
from pydantic import BaseModel, Field
from traceloop.sdk.evaluator.config import EvaluatorDetails
EvaluatorSpec = Union[str, EvaluatorDetails]
class TaskResponse(BaseModel):
"""Model for a single task process (row)"""
task_result: Optional[Dict[str, Any]] = None
evaluations: Dict[str, Any] = Field(default_factory=dict)
error: Optional[str] = None
class InitExperimentRequest(BaseModel):
"""Model for initializing an experiment"""
slug: str
dataset_slug: Optional[str] = None
dataset_version: Optional[str] = None
evaluator_slugs: Optional[List[str]] = None
experiment_metadata: Optional[Dict[str, Any]] = None
experiment_run_metadata: Optional[Dict[str, Any]] = None
class ExperimentResponse(BaseModel):
"""Model for experiment response"""
id: str
slug: str
metadata: Optional[Dict[str, Any]] = None
created_at: datetime
updated_at: datetime
class ExperimentRunResponse(BaseModel):
"""Model for experiment run response"""
id: str
metadata: Optional[Dict[str, Any]] = None
dataset_id: Optional[str] = None
dataset_version: Optional[str] = None
evaluator_ids: Optional[List[str]] = None
created_at: datetime
updated_at: datetime
class ExperimentInitResponse(BaseModel):
"""Model for experiment and run response"""
experiment: ExperimentResponse
run: ExperimentRunResponse
class CreateTaskRequest(BaseModel):
"""Model for create task request"""
input: Dict[str, Any]
output: Dict[str, Any]
class CreateTaskResponse(BaseModel):
"""Model for create task response"""
id: str
class TaskResult(BaseModel):
"""Model for a single task result"""
input: Dict[str, Any]
output: Optional[Dict[str, Any]] = None
error: Optional[str] = None
class GithubContext(BaseModel):
"""Model for GitHub context"""
repository: str
pr_url: str
commit_hash: str
actor: str
class RunInGithubRequest(BaseModel):
"""Model for bulk GitHub experiment execution request"""
experiment_slug: str
dataset_slug: Optional[str] = None
dataset_version: Optional[str] = None
evaluator_slugs: Optional[List[str]] = None
task_results: List[TaskResult]
github_context: GithubContext
experiment_metadata: Optional[Dict[str, Any]] = None
experiment_run_metadata: Optional[Dict[str, Any]] = None
class RunInGithubResponse(BaseModel):
"""Model for bulk GitHub experiment execution response"""
experiment_id: str
experiment_slug: str
run_id: str