File size: 1,521 Bytes
fbdfc24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f37bf1d
fbdfc24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
from dotenv import load_dotenv

# Change to:
try:
    load_dotenv("../.env", override=True)
except:
    pass  # Ignore if .env file doesn't exist (like on Hugging Face)

class Settings:
    # API Keys
    OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
    MONGO_URI = os.environ.get("MONGO_URI")
    NEON_DB_URL = os.environ.get("NEON_DB_URL")
    NEON_END_POINT = os.getenv("NEON_END_POINT")
    
    # Database
    # DATABASE_URL = NEON_END_POINT
    
    # Model Configurations
    EMBEDDING_MODEL = "text-embedding-ada-002"
    CHAT_MODEL = "gpt-4o-mini"
    CHAT_MODEL_2 = "gpt-3.5-turbo"
    CHAT_TEMPERATURE = 0.1
    CHAT_MAX_TOKENS = 2000
    
    # Vector Search
    VECTOR_INDEX_NAME = "vector_index"
    TEXT_KEY = "contenu"
    EMBEDDING_KEY = "vecteur_embedding"
    
    # Collections
    BENIN_COLLECTION = "legal_documents"
    MADAGASCAR_COLLECTION = "legal_documents_madagascar"
    DATABASE_NAME = "legal_db"
    
    # Search Parameters
    MAX_SEARCH_RESULTS = 10
    MAX_CONVERSATION_HISTORY = 8
    
    def validate(self):
        missing = []
        if not self.OPENAI_API_KEY:
            missing.append("OPENAI_API_KEY")
        if not self.MONGO_URI:
            missing.append("MONGO_URI")
        if not self.NEON_DB_URL:
            missing.append("NEON_DB_URL")
        if not self.NEON_END_POINT:
            missing.append("NEON_END_POINT")
        
        if missing:
            raise ValueError(f"Missing environment variables: {', '.join(missing)}")

settings = Settings()