import os
from dotenv import load_dotenv
load_dotenv()
class Config:
# OpenAI
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "text-embedding-3-small")
# Paths
CHROMA_DB_PATH = os.getenv("CHROMA_DB_PATH", "./data/chroma_db")
DOCUMENTS_PATH = os.getenv("DOCUMENTS_PATH", "./data/documents")
QUERY_LOGS_PATH = os.getenv("QUERY_LOGS_PATH", "./data/query_logs")
# RAG Settings
CHUNK_SIZE = int(os.getenv("CHUNK_SIZE", "1000"))
CHUNK_OVERLAP = int(os.getenv("CHUNK_OVERLAP", "200"))
TOP_K_RESULTS = int(os.getenv("TOP_K_RESULTS", "5"))
# ChromaDB
COLLECTION_NAME = "research_papers"
@classmethod
def validate(cls):
if not cls.OPENAI_API_KEY:
raise ValueError("OPENAI_API_KEY not set in .env")
os.makedirs(cls.CHROMA_DB_PATH, exist_ok=True)
os.makedirs(cls.QUERY_LOGS_PATH, exist_ok=True)