| from datetime import datetime |
| from typing import Optional, List, Literal |
| from pydantic import Field |
| from agentic_reliability_framework.core.models.event import ReliabilityEvent |
|
|
| class AIEvent(ReliabilityEvent): |
| """Extended event for AI system monitoring across multiple modalities (text, image, audio, etc.).""" |
| action_category: Literal["chat", "code", "summary", "image", "audio", "iot"] = Field( |
| ..., description="Type of AI task or domain" |
| ) |
| model_name: str = Field(..., description="Identifier of the AI model used") |
| model_version: str = Field(..., description="Version/tag of the model") |
| prompt: str = Field(..., description="Input prompt/query") |
| response: str = Field(..., description="Generated response") |
| response_length: int = Field(ge=0, description="Number of tokens/characters") |
| confidence: float = Field(ge=0, le=1, description="Model's confidence score (if available)") |
| perplexity: Optional[float] = Field(None, ge=0, description="Perplexity/entropy measure") |
| retrieval_scores: Optional[List[float]] = Field(None, description="Similarity scores of retrieved documents") |
| user_feedback: Optional[bool] = Field(None, description="User thumbs up/down") |
| latency_ms: float = Field(ge=0, description="Response generation time in milliseconds") |