from pydantic import BaseModel
import os
class Config(BaseModel):
"""Server configuration."""
api_url: str = "http://localhost:11434"
model_name: str = "deepseek-r1"
temperature: float = 0.7
top_p: float = 0.9
max_tokens: int = 2048
timeout: float = 30.0
repeat_penalty: float = 1.1
context_window: int = 8192 # Deepseek's context window
def load_config() -> Config:
"""Load configuration from environment variables."""
return Config(
api_url=os.getenv("OLLAMA_API_URL", "http://localhost:11434"),
model_name=os.getenv("OLLAMA_MODEL", "deepseek-r1"),
temperature=float(os.getenv("TEMPERATURE", "0.7")),
top_p=float(os.getenv("TOP_P", "0.9")),
timeout=float(os.getenv("TIMEOUT", "30.0")),
repeat_penalty=float(os.getenv("REPEAT_PENALTY", "1.1")),
context_window=int(os.getenv("CONTEXT_WINDOW", "8192"))
)