ai_chat_api / models /schemas.py
Soumik Bose
go
cde2f6e
from typing import List, Optional, Any
from pydantic import BaseModel, Field
class Message(BaseModel):
role: str = Field(..., description="Role of the message sender (user/assistant/system)")
content: str = Field(..., description="Content of the message")
class ChatRequest(BaseModel):
messages: List[Message] = Field(..., description="List of messages in the conversation")
temperature: Optional[float] = Field(0.6, ge=0.0, le=2.0, description="Sampling temperature")
max_tokens: Optional[int] = Field(512, ge=1, le=4096, description="Maximum tokens to generate")
stream: Optional[bool] = Field(False, description="Enable streaming response")
returnJson: Optional[bool] = Field(False, description="Extract and return JSON from response")
class VisionRequest(BaseModel):
prompt: str = Field(..., description="Text prompt/question about the image")
temperature: Optional[float] = Field(0.6, ge=0.0, le=2.0, description="Sampling temperature")
max_tokens: Optional[int] = Field(512, ge=1, le=4096, description="Maximum tokens to generate")
return_json: Optional[bool] = Field(False, description="Extract and return JSON from response")
class ErrorResponse(BaseModel):
error: str
detail: Optional[str] = None
class HealthResponse(BaseModel):
status: str
text_model: bool
vision_model: bool
timestamp: str