import os from dotenv import load_dotenv load_dotenv() os.environ["HF_HUB_DISABLE_SYMLINKS_WARNING"] = "1" BASE_DIR = os.path.dirname(os.path.abspath(__file__)) DATA_PATH = os.path.join(BASE_DIR, "DeepSeek_v4.json") CHROMA_DB_PATH = os.path.join(BASE_DIR, "chroma_db") EMBEDDING_MODEL = "BAAI/bge-small-en-v1.5" EMBEDDING_DIM = 384 EMBEDDING_DEVICE = "cpu" RERANKER_MODEL = "cross-encoder/ms-marco-MiniLM-L-6-v2" RERANKER_DEVICE = "cpu" CHUNK_SIZE = 512 CHUNK_OVERLAP = 64 BM25_TOP_K = 15 DENSE_TOP_K = 15 HYBRID_TOP_K = 15 RERANK_CANDIDATES = 10 RERANK_TOP_K = 7 FINAL_TOP_K = 5 HYBRID_ALPHA = 0.5 HYBRID_FUSION_METHOD = "normalized" CACHE_MAX_SIZE = 200 CACHE_TTL_SECONDS = 3600 HNSW_SPACE = "cosine" HNSW_EF_CONSTRUCTION = 200 HNSW_M = 32 HNSW_EF_SEARCH = 384 DUP_SIM_THRESHOLD = 0.92 DUP_NGRAM_SIZE = 5 DUP_NUM_PERM = 128 GROQ_API_KEY = os.getenv("GROQ_API_KEY", "") GROQ_MODEL = "llama-3.1-8b-instant" GROQ_TEMPERATURE = 0.1 GROQ_MAX_TOKENS = 2048 GROQ_TIMEOUT = 10 MAX_CONTEXT_TOKENS = 8192 SYSTEM_PROMPT_RATIO = 0.15 CHUNK_BUDGET_RATIO = 0.70 GENERATION_RATIO = 0.15 EVAL_NUM_QUESTIONS = 20 EVAL_RETRIEVAL_K = [1, 5, 10] GRADIO_PORT = 7860 GRADIO_SHARE = False