Spaces:
Sleeping
Sleeping
| from pydantic import BaseModel, Field | |
| from typing import List, Optional, Literal | |
| from app.core.config import settings | |
| class SettingsUpdate(BaseModel): | |
| """Schema for updating application settings.""" | |
| # RAG Settings | |
| chunk_size: Optional[int] = Field(default=settings.chunk_size, ge=100, le=5000, description="Text chunk size") | |
| chunk_overlap: Optional[int] = Field(default=settings.chunk_overlap, ge=0, le=1000, description="Chunk overlap size") | |
| similarity_top_k: Optional[int] = Field(default=settings.similarity_top_k, ge=1, le=20, description="Number of similar docs to retrieve") | |
| similarity_threshold: Optional[float] = Field(default=settings.similarity_threshold, ge=0, le=1, description="Similarity threshold") | |
| # Model Settings | |
| llm_provider: Optional[Literal["gemini", "local"]] = Field(default=settings.llm_provider, description="LLM provider to use") | |
| enable_fallback: Optional[bool] = Field(default=settings.enable_fallback, description="Enable fallback to alternate model") | |
| gemini_model_name: Optional[str] = Field(default=settings.gemini_model_name, description="Gemini model name") | |
| local_model_name: Optional[str] = Field(default=settings.local_model_name, description="Local model filename") | |
| # API Settings | |
| cors_origins: Optional[List[str]] = Field(default=settings.cors_origins, description="Allowed CORS origins") | |
| class SettingsResponse(BaseModel): | |
| """Schema for settings response.""" | |
| # Paths (read-only) | |
| root_path: str | |
| model_path: str | |
| data_path: str | |
| # API Settings | |
| api_title: str | |
| api_version: str | |
| cors_origins: List[str] | |
| # RAG Settings | |
| chunk_size: int | |
| chunk_overlap: int | |
| similarity_top_k: int | |
| similarity_threshold: float | |
| collection_name: str | |
| persist_directory: str | |
| # Model Settings | |
| llm_provider: str | |
| enable_fallback: bool | |
| embedding_model_name: str | |
| gemini_model_name: str | |
| local_model_name: str | |
| class Config: | |
| from_attributes = True | |