25 lines
547 B
Python
25 lines
547 B
Python
from typing import List, Optional
|
|
|
|
from pydantic import BaseModel, Field, validator
|
|
|
|
|
|
class ChatRequest(BaseModel):
|
|
message: str = Field(..., min_length=1, max_length=10000)
|
|
provider: Optional[str] = None
|
|
|
|
@validator("message")
|
|
def message_not_empty(cls, v):
|
|
if not v.strip():
|
|
raise ValueError("Message cannot be empty or whitespace")
|
|
return v.strip()
|
|
|
|
|
|
class ChatResponse(BaseModel):
|
|
message: str
|
|
provider: str
|
|
|
|
|
|
class ProviderListResponse(BaseModel):
|
|
providers: List[str]
|
|
default: str
|