""" Configuration settings for the Agentic AI system. """ from typing import Dict, List, Optional from pydantic_settings import BaseSettings from pydantic import Field from pathlib import Path class AgenticAISettings(BaseSettings): """Main configuration settings.""" # Project settings project_name: str = "Agentic AI System" version: str = "0.1.0" debug: bool = False # API settings api_timeout: int = 30 api_max_retries: int = 3 api_backoff_factor: float = 1.0 # CDMS API settings cdms_api_url: Optional[str] = None cdms_api_key: Optional[str] = None cdms_timeout: int = 60 # Query processing settings max_keywords: int = 10 similarity_threshold: float = 0.7 fuzzy_match_threshold: int = 80 # spaCy settings spacy_model: str = "en_core_web_sm" # KeyBERT settings keybert_model: str = "all-MiniLM-L6-v2" keybert_top_k: int = 10 keybert_use_maxsum: bool = True keybert_use_mmr: bool = True keybert_diversity: float = 0.5 # Vector database settings qdrant_host: str = "localhost" qdrant_port: int = 6333 qdrant_collection_name: str = "api_embeddings" qdrant_vector_size: int = 1536 # OpenAI text-embedding-3-small (was stale 384) # Logging settings log_level: str = "INFO" log_format: str = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" log_file: Optional[str] = "logs/agentic_ai.log" # Reflection settings reflection_max_iterations: int = 3 reflection_improvement_threshold: float = 0.1 class Config: env_file = ".env" env_file_encoding = "utf-8" # Ignore unrelated env vars (OPENAI_API_KEY, TAVILY_API_KEY, HF/Space # secrets, etc.) instead of raising. Without this, simply having those # env vars set — as on any HF Space — crashes settings construction. extra = "ignore" # Global settings instance settings = AgenticAISettings()