Coverage for app \ config.py: 100%

30 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-02-24 13:18 +0530

1from pydantic_settings import BaseSettings 

2from pydantic import ConfigDict 

3 

4 

5class Settings(BaseSettings): 

6 QDRANT_URL: str = "http://localhost:6333" 

7 QDRANT_API_KEY: str | None = None 

8 QDRANT_TIMEOUT: int = 30 

9 

10 QDRANT_COLLECTION: str = "medical_documents" 

11 EMBEDDING_DIM: int = 1024 

12 CHUNK_SIZE: int = 1000 

13 CHUNK_OVERLAP: int = 100 

14 

15 EMBEDDING_MODEL_NAME: str = "BAAI/bge-m3" 

16 EMBEDDING_DEVICE: str = "cpu" 

17 EMBEDDING_BATCH_SIZE: int = 32 

18 

19 # NER / GLiNER 

20 NER_MODEL_NAME: str = "urchade/gliner_small-v2.1" 

21 NER_CONFIDENCE_THRESHOLD: float = 0.3 

22 NER_DEVICE: str | None = None 

23 

24 NER_LABELS: list[str] = [ 

25 "drug", 

26 "medical condition", 

27 "biomarker", 

28 "symptom", 

29 ] 

30 

31 # NCBI / PubMed 

32 NCBI_EMAIL: str = "yashjagdale77@gmail.com" 

33 NCBI_REQUEST_DELAY: float = 0.5 

34 MIN_TEXT_LENGTH: int = 500 

35 QDRANT_BATCH_SIZE: int = 128 

36 

37 # ─── NEW: DB & JWT CONFIGURATION ─── 

38 DB_USER: str = "postgres" 

39 DB_PASSWORD: str = "yash2535" 

40 DB_HOST: str = "localhost" 

41 DB_PORT: str = "5432" 

42 DB_NAME: str = "medical_ai_user" 

43 

44 JWT_SECRET_KEY: str = "a_very_secure_random_32_plus_character_secret_key_123" 

45 JWT_ACCESS_TOKEN_EXPIRES: int = 3600 

46 

47 # ✅ Pydantic v2 way 

48 model_config = ConfigDict(env_file=".env", extra="ignore") 

49 

50 

51settings = Settings()