Study-Buddy / rag /schemas.py
Hamdy005's picture
refactor: update system prompts safety guidelines
f412b66
Raw
History Blame Contribute Delete
1.18 kB
import asyncio
from dataclasses import dataclass, field
from pydantic import BaseModel, Field
from typing import Optional, Any
# Search input schema for tools
class SearchInput(BaseModel):
query: str = Field(description="The search query or topic to look up")
# Batch worker job dataclass
@dataclass
class EmbeddingJob:
"""Batch embedding of multiple texts (for store_embeddings)."""
job_id: str
texts: list[str]
done: asyncio.Event = field(default_factory=asyncio.Event)
# Tutor query and response schemas
class TutorQuery(BaseModel):
query: str
source_type: str = "web"
material_id: Optional[str] = None
session_id: Optional[str] = None # preferred
memory_id: Optional[str] = None # legacy fallback
class TutorResponse(BaseModel):
answer: str
source: str
time_taken: float
memory_id: str
# Chat session models
class SessionRequest(BaseModel):
material_id: str
title: Optional[str] = "Chat Session"
class RenameSessionRequest(BaseModel):
title: str
class ExtractTitleRequest(BaseModel):
query: str
class SaveChatRequest(BaseModel):
material_id: str
messages: list[dict[str, Any]]