2023-11-27 16:01:20 -08:00
|
|
|
import datetime
|
2024-07-28 15:20:05 -07:00
|
|
|
from typing import Any, Dict, List, Literal, Optional, Union
|
|
|
|
from uuid import UUID
|
2023-11-27 16:01:20 -08:00
|
|
|
|
2024-07-28 15:20:05 -07:00
|
|
|
from pydantic import AnyUrl, Base64Bytes, BaseModel, ConfigDict
|
|
|
|
from pydantic_extra_types.phone_numbers import PhoneNumber
|
2023-11-27 16:01:20 -08:00
|
|
|
|
|
|
|
from ..models.ai_feedback import AiFeedback
|
|
|
|
from ..models.ai_prompt_type import AiPromptType
|
|
|
|
from ..models.api_call_status import ApiCallStatus
|
|
|
|
from ..models.uuid import Uuid
|
2024-07-28 15:20:05 -07:00
|
|
|
from .base64data import Base64Data
|
2023-11-28 23:50:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
class AiPrompt(BaseModel):
|
|
|
|
"""An AI prompt."""
|
|
|
|
|
|
|
|
completed_at: Optional[datetime.datetime] = None
|
|
|
|
|
|
|
|
created_at: datetime.datetime
|
|
|
|
|
|
|
|
error: Optional[str] = None
|
|
|
|
|
|
|
|
feedback: Optional[AiFeedback] = None
|
|
|
|
|
2023-11-29 10:41:21 -08:00
|
|
|
id: Uuid
|
2023-11-28 23:50:50 -08:00
|
|
|
|
|
|
|
metadata: Optional[Any] = None
|
|
|
|
|
|
|
|
model_version: str
|
|
|
|
|
|
|
|
output_file: Optional[str] = None
|
|
|
|
|
|
|
|
prompt: str
|
|
|
|
|
|
|
|
started_at: Optional[datetime.datetime] = None
|
|
|
|
|
|
|
|
status: ApiCallStatus
|
|
|
|
|
|
|
|
type: AiPromptType
|
|
|
|
|
|
|
|
updated_at: datetime.datetime
|
|
|
|
|
|
|
|
user_id: Uuid
|
2024-01-06 18:32:21 -08:00
|
|
|
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|