File size: 2,257 Bytes
e272f4f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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")
    
    @staticmethod
    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