File size: 1,044 Bytes
965ac15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from pydantic import validator
from pydantic_settings import BaseSettings
from functools import lru_cache

from dotenv import load_dotenv


class Settings(BaseSettings):
    PROJECT_NAME: str = "SehaTech: Medical AI Assistant"
    API_V1_STR: str = "/api/v1"
    OPENAI_API_KEY: str
    PINECONE_API_KEY: str
    INDEX_NAME: str
    CLOUD: str
    REGION: str
    PDF_DIRECTORY: str  # Directory containing PDF files
    CHUNK_SIZE: int 
    CHUNK_OVERLAP: int
    DIMENSIONS: int
    AWS_ACCESS_KEY: str
    AWS_SECRET_KEY: str
    AWS_REGION: str
    AWS_BUCKET_NAME: str
    PUBMED_BASE_URL: str
    
    
    class Config:
        env_file = ".env"
        
    @validator("OPENAI_API_KEY")
    def validate_openai_key(cls, v):
        if not v.startswith("sk-"):
            raise ValueError("Invalid OpenAI API key format")
        return v

    def __init__(self, **kwargs):
        # Force reload of environment variables
        load_dotenv(override=True)
        super().__init__(**kwargs)


def get_settings():
    return Settings()