File size: 1,341 Bytes
106317a
 
6ebbca3
 
106317a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e3eb379
 
6ebbca3
 
 
 
 
e3eb379
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from datetime import datetime
from pydantic import BaseModel, Field
from typing import Any, Dict, List, Optional
from langchain_core.messages import BaseMessage


class ThreadFileResponse(BaseModel):
    """Response model for thread file operations."""
    file_id: str = Field(..., description="OpenAI file ID")
    filename: str = Field(..., description="Original filename")
    bytes: int = Field(..., description="File size in bytes")
    purpose: str = Field(..., description="File purpose")
    created_at: datetime = Field(...,
                                 description="When file was added to brand")
    uploaded_by: str = Field(..., description="User ID who uploaded the file")
    openai_created_at: int = Field(...,
                                   description="OpenAI creation timestamp")


class ThreadFileUploadRequest(BaseModel):
    """Request model for uploading thread files."""
    purpose: Optional[str] = Field(
        default="assistants", description="File purpose for OpenAI")


class ThreadFileDeleteRequest(BaseModel):
    """Request model for deleting thread files."""
    file_id: str = Field(..., description="OpenAI file ID to delete")


class FetchSuggestionsRequest(BaseModel):
    messages: List[BaseMessage]
    state: Dict[str, Any]


class NextSuggestion(BaseModel):
    title: str
    prompt: str