"""Application configuration.""" from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): """Application settings.""" # Hugging Face Space OpenAI API endpoint hf_space_url: str = "https://jeanbaptdzd-open-finance-llm-8b.hf.space" # OpenAI-compatible API settings api_key: str = "not-needed" # No authentication required model_name: str = "DragonLLM/qwen3-8b-fin-v1.0" # API configuration timeout: float = 120.0 max_retries: int = 3 # Generation settings for reasoning models # Qwen3 uses tags which consume 40-60% of tokens # Increase max_tokens to allow complete responses max_tokens: int = 1500 # Increased for reasoning models (was default ~800-1000) # Context window limits for Qwen-3 8B # Base context window: 32,768 tokens (32K) # Extended with YaRN: up to 128,000 tokens (128K) # Current max_tokens is for generation, context input can use up to ~30K tokens # Generation limits # Maximum theoretical generation: 20,000 tokens # Practical limit depends on: context_window - input_tokens - safety_margin # With typical input (~500 tokens), can generate up to ~30K tokens max_generation_limit: int = 20000 # Theoretical maximum (rarely needed) model_config = SettingsConfigDict( env_file=".env", env_file_encoding="utf-8", extra="ignore", ) settings = Settings()