Spaces:
Sleeping
Sleeping
File size: 2,055 Bytes
58de15f f4da05f a9465d3 93ed01f a9465d3 58de15f bea2de8 a9465d3 58de15f |
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 56 57 58 |
# app/core/config.py
import os
from pydantic_settings import BaseSettings
from typing import List, Union, Optional
from pydantic import AnyHttpUrl, validator, PostgresDsn
import logging
from dotenv import dotenv_values
logger = logging.getLogger(__name__)
class Settings(BaseSettings):
PROJECT_NAME: str = "Chatbot Backend V2"
API_V2_PREFIX: str = "/api/v2"
DATABASE_URL: PostgresDsn
NEO4J_URI: Optional[str] = None
NEO4J_USERNAME: Optional[str] = None
NEO4J_PASSWORD: Optional[str] = None
NEO4J_DATABASE: Optional[str] = "neo4j"
OPENAI_API_KEY: str
OPENAI_MODEL_NAME: str = "gpt-4-turbo"
RETRIEVAL_ARTIFACTS_PATH: str = "data/final_retrieval_artifacts.npz"
QUERY_ENCODER_MODEL_NAME: str = "BAAI/bge-m3"
S3_ARTIFACTS_URL: Optional[str] = None
S3_RERANKER_URL: Optional[str] = None
RERANKER_MODEL_PATH: str = "data/best_expert_judge_cross_encoder.pt" # Or the exact name of your saved .pt file
RERANKER_MODEL_NAME: str = "mixedbread-ai/mxbai-rerank-base-v2" # The base model used in your training script
RERANKER_SCORE_THRESHOLD: float = 0.0
RERANKER_K_MIN: int = 5
RERANKER_FALLOFF_THRESHOLD: int = 1
RERANKER_K_MAX: int = 100
SEQUENCE_EXPANSION_THRESHOLD: float =0.68
BACKEND_CORS_ORIGINS: Union[str, List[AnyHttpUrl]] = "http://localhost:5173"
@validator("BACKEND_CORS_ORIGINS", pre=True)
def assemble_cors_origins(cls, v: Union[str, List[str]]) -> Union[List[str], str]:
if isinstance(v, str) and not v.startswith("["):
return [i.strip() for i in v.split(",")]
elif isinstance(v, list):
return v
raise ValueError(v)
class Config:
case_sensitive = True
env_file = '.env'
env_file_encoding = 'utf-8'
# --- FIX: Ignore extra fields from the .env file ---
# This prevents the app from crashing if obsolete variables like
# GNN_EMBEDDINGS_NPZ_PATH are still present.
extra = 'ignore'
# --- END OF FIX ---
settings = Settings()
|