Spaces:
Sleeping
Sleeping
| from dotenv import load_dotenv | |
| import os | |
| import logging | |
| from pathlib import Path | |
| load_dotenv() | |
| # Logging configuration | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' | |
| ) | |
| logger = logging.getLogger(__name__) | |
| class Config: | |
| # Crawling and content configuration | |
| MAX_PAGES_TO_CRAWL = int(os.getenv('MAX_PAGES_TO_CRAWL', 20)) | |
| MAX_LINKS_PER_PAGE = int(os.getenv('MAX_LINKS_PER_PAGE', 10)) | |
| MAX_CONTEXT_LENGTH = int(os.getenv('MAX_CONTEXT_LENGTH', 4000)) | |
| MAX_HISTORY_MESSAGES = int(os.getenv('MAX_HISTORY_MESSAGES', 20)) | |
| # Model configuration | |
| EMBEDDING_MODEL = os.getenv('EMBEDDING_MODEL', 'all-MiniLM-L6-v2') | |
| OLLAMA_BASE_URL = os.getenv('OLLAMA_BASE_URL', 'http://localhost:11434') | |
| OLLAMA_MODEL = os.getenv('OLLAMA_MODEL', 'mistral') | |
| # Path configuration | |
| BASE_DIR = Path(__file__).parent.parent | |
| SESSIONS_DIR = os.path.join(BASE_DIR, "sessions") | |
| # Qdrant configuration (new) | |
| QDRANT_HOST = os.getenv('QDRANT_HOST', 'localhost') | |
| QDRANT_PORT = int(os.getenv('QDRANT_PORT', 6333)) | |
| QDRANT_COLLECTION_PREFIX = os.getenv('QDRANT_COLLECTION_PREFIX', 'Chat-Bot') | |
| QDRANT_URL = os.getenv('QDRANT_URL', 'https://6fe012ee-5a7c-4304-a77c-293a1888a9cf.us-west-2-0.aws.cloud.qdrant.io') | |
| QDRANT_API_KEY = os.getenv('QDRANT_API_KEY', None) # For cloud version | |
| # MongoDB configuration | |
| MONGO_URI = os.getenv('MONGO_URI', "mongodb+srv://mehulxy21:[email protected]/") | |
| DATABASE_NAME = os.getenv('DATABASE_NAME', "rag_chat_history") | |
| HISTORY_COLLECTION = os.getenv('HISTORY_COLLECTION', "conversations") | |
| def create_storage_dirs(): | |
| """Create necessary directories for storage""" | |
| os.makedirs(Config.SESSIONS_DIR, exist_ok=True) | |
| logger.info(f"Sessions directory created at: {Config.SESSIONS_DIR}") | |
| # Create data directory if it doesn't exist | |
| data_dir = os.path.join(Config.BASE_DIR, "data") | |
| os.makedirs(data_dir, exist_ok=True) | |
| logger.info(f"Data directory created at: {data_dir}") | |
| # Session Management | |
| SESSION_INACTIVITY_TIMEOUT = 3600 # 1 hour in seconds | |
| SESSION_CLEANUP_INTERVAL = 600 |