backend / app /rag /models.py
precison9's picture
deploy FastAPI backend
62a1756
from typing import List, Optional
from pydantic import BaseModel, Field
from bson import ObjectId
from datetime import datetime
ALLOWED_MODELS = [
"allam-2-7b", # Fixed typo from "allam-2-7b"
"groq/compound",
"groq/compound-mini",
"llama-3.1-8b-instant",
"llama-3.3-70b-versatile",
"llama-3.1-70b-versatile", # Assuming typo from "llama-3.3-70b-versatile"
"meta-llama/llama-4-maverick-17b-128e-instruct",
"meta-llama/llama-4-scout-17b-16e-instruct",
"meta-llama/llama-guard-4-12b",
"meta-llama/llama-prompt-guard-2-22m",
"meta-llama/llama-prompt-guard-2-86m",
"moonshotai/kimi-k2-instruct",
"moonshotai/kimi-k2-instruct-0905",
"openai/gpt-oss-120b",
"openai/gpt-oss-20b",
"openai/gpt-oss-safeguard-20b",
"qwen/qwen3-32b",
]
class Message(BaseModel):
role: str
content: str
class Conversation(BaseModel):
id: Optional[str] = None # str(ObjectId)
user_id: str
messages: List[Message] = []
created_at: datetime = Field(default_factory=datetime.utcnow)
class ChatRequest(BaseModel):
model: str = Field(..., description="Groq model", enum=ALLOWED_MODELS)
enable_web_search: bool = False
message: str = Field(..., min_length=1)