import os from openai.types.chat import ChatCompletionMessageParam import sys from dotenv import load_dotenv from pydantic import BaseModel from loguru import logger load_dotenv() # Pydantic models class Chunk(BaseModel): main_title: str chunk_title: str content: str class Query(BaseModel): prompt: str doc_name: str context: list[ChatCompletionMessageParam] class TableList(BaseModel): tables: list[str] # CONFIG VARS SEARCH_K_EMBEDDINGS = 3 HISTORY_LEN = 6 EMBEDDING_MODEL = "text-embedding-3-large" # ENV VARS DEPLOY_FE_URL = os.getenv("DEPLOY_FE_URL") LOCAL_FE_URL = os.getenv("LOCAL_FE_URL", "http://localhost:8501") DATABASE_URL = os.getenv("DB_URL") OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper() # LOGGING def setup_logging() -> None: logger.remove() logger.add( sys.stdout, format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", level=LOG_LEVEL, enqueue=True, )