Spaces:
Sleeping
Sleeping
Delete config
Browse files- config/__init__.py +0 -1
- config/config.py +0 -142
config/__init__.py
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
# Config Package
|
|
|
|
config/config.py
DELETED
@@ -1,142 +0,0 @@
|
|
1 |
-
# RAG Configuration File
|
2 |
-
# Update these settings as needed
|
3 |
-
|
4 |
-
import os
|
5 |
-
from dotenv import load_dotenv
|
6 |
-
|
7 |
-
# Load environment variables from .env file
|
8 |
-
load_dotenv()
|
9 |
-
|
10 |
-
# Common LLM Settings
|
11 |
-
MAX_TOKENS = 1200
|
12 |
-
TEMPERATURE = 0.4
|
13 |
-
|
14 |
-
# OCR Settings
|
15 |
-
OCR_SPACE_API_KEY = os.getenv("OCR_SPACE_API_KEY", "")
|
16 |
-
|
17 |
-
# OpenAI Settings
|
18 |
-
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
|
19 |
-
OPENAI_MODEL = "gpt-3.5-turbo"
|
20 |
-
|
21 |
-
# Gemini Settings
|
22 |
-
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "")
|
23 |
-
GEMINI_MODEL = "gemini-1.5-flash"
|
24 |
-
|
25 |
-
# Groq Settings
|
26 |
-
GROQ_API_KEY = os.getenv("GROQ_API_KEY")
|
27 |
-
GROQ_MODEL = os.getenv("GROQ_MODEL", "llama3-70b-8192")
|
28 |
-
|
29 |
-
GROQ_API_KEY_LITE = os.getenv("GROQ_API_KEY_LITE")
|
30 |
-
GROQ_MODEL_LITE = "llama3-8b-8192"
|
31 |
-
|
32 |
-
# API Authentication
|
33 |
-
BEARER_TOKEN = os.getenv("BEARER_TOKEN", "c6cee5b5046310e401632a7effe9c684d071a9ef5ce09b96c9ec5c3ebd13085e")
|
34 |
-
|
35 |
-
# Chunking (TOKEN-BASED)
|
36 |
-
CHUNK_SIZE = 1600 # Maximum tokens per chunk (optimal for most LLMs)
|
37 |
-
CHUNK_OVERLAP = 300 # Token overlap between chunks (reduced for efficiency)
|
38 |
-
|
39 |
-
# Retrieval Settings
|
40 |
-
TOP_K = 12
|
41 |
-
SCORE_THRESHOLD = 0.3
|
42 |
-
RERANK_TOP_K = 9
|
43 |
-
BM25_WEIGHT = 0.3
|
44 |
-
SEMANTIC_WEIGHT = 0.7
|
45 |
-
|
46 |
-
# Advanced RAG Settings
|
47 |
-
ENABLE_RERANKING = True
|
48 |
-
ENABLE_HYBRID_SEARCH = True
|
49 |
-
ENABLE_QUERY_EXPANSION = True
|
50 |
-
RERANKER_MODEL = "cross-encoder/ms-marco-MiniLM-L-6-v2"
|
51 |
-
QUERY_EXPANSION_COUNT = 3
|
52 |
-
MAX_CONTEXT_LENGTH = 15000
|
53 |
-
|
54 |
-
USE_TOTAL_BUDGET_APPROACH = True
|
55 |
-
|
56 |
-
# Embedding Settings
|
57 |
-
EMBEDDING_MODEL = "BAAI/bge-large-en" # Optimal for CPU
|
58 |
-
BATCH_SIZE = 32 # Increased for better CPU utilization (adjust based on RAM)
|
59 |
-
|
60 |
-
# Paths
|
61 |
-
OUTPUT_DIR = os.getenv("RAG_EMBEDDINGS_PATH", "./RAG/rag_embeddings")
|
62 |
-
|
63 |
-
# API Settings
|
64 |
-
API_HOST = "0.0.0.0"
|
65 |
-
API_PORT = 8000
|
66 |
-
API_RELOAD = True
|
67 |
-
|
68 |
-
# Multi-LLM failover system
|
69 |
-
sequence = ["primary", "secondary", "ternary", "quaternary", "quinary", "senary", "septenary", "octonary", "nonary", "denary"]
|
70 |
-
|
71 |
-
def get_provider_configs():
|
72 |
-
"""
|
73 |
-
Get configurations for all provider instances with failover support.
|
74 |
-
Supports multiple instances of each provider type for reliability.
|
75 |
-
"""
|
76 |
-
configs = {
|
77 |
-
"groq": [],
|
78 |
-
"gemini": [],
|
79 |
-
"openai": []
|
80 |
-
}
|
81 |
-
|
82 |
-
# Groq configurations with multiple API keys for failover
|
83 |
-
DEFAULT_GROQ_MODEL = "qwen/qwen3-32b"
|
84 |
-
configs["groq"] = [{
|
85 |
-
"name": sequence[i-1],
|
86 |
-
"api_key": os.getenv(f"GROQ_API_KEY_{i}"),
|
87 |
-
"model": os.getenv(f"GROQ_MODEL_{i}", DEFAULT_GROQ_MODEL)} for i in range(1, 10) if os.getenv(f"GROQ_API_KEY_{i}", "")
|
88 |
-
]
|
89 |
-
|
90 |
-
# Add main GROQ key as primary
|
91 |
-
if os.getenv("GROQ_API_KEY"):
|
92 |
-
configs["groq"].insert(0, {
|
93 |
-
"name": "main",
|
94 |
-
"api_key": os.getenv("GROQ_API_KEY"),
|
95 |
-
"model": DEFAULT_GROQ_MODEL
|
96 |
-
})
|
97 |
-
|
98 |
-
# Gemini configurations with multiple API keys for failover
|
99 |
-
DEFAULT_GEMINI_MODEL = "gemini-1.5-flash"
|
100 |
-
configs["gemini"] = [{
|
101 |
-
"name": sequence[i-1],
|
102 |
-
"api_key": os.getenv(f"GEMINI_API_KEY_{i}"),
|
103 |
-
"model": os.getenv(f"GEMINI_MODEL_{i}", DEFAULT_GEMINI_MODEL)
|
104 |
-
} for i in range(1, 10) if os.getenv(f"GEMINI_API_KEY_{i}", "")
|
105 |
-
]
|
106 |
-
|
107 |
-
# Add main GEMINI key as primary
|
108 |
-
if os.getenv("GEMINI_API_KEY"):
|
109 |
-
configs["gemini"].insert(0, {
|
110 |
-
"name": "main",
|
111 |
-
"api_key": os.getenv("GEMINI_API_KEY"),
|
112 |
-
"model": DEFAULT_GEMINI_MODEL
|
113 |
-
})
|
114 |
-
|
115 |
-
# OpenAI configurations with multiple API keys for failover
|
116 |
-
DEFAULT_OPENAI_MODEL = "gpt-4o-mini"
|
117 |
-
configs["openai"] = [{
|
118 |
-
"name": sequence[i-1],
|
119 |
-
"api_key": os.getenv(f"OPENAI_API_KEY_{i}"),
|
120 |
-
"model": os.getenv(f"OPENAI_MODEL_{i}", DEFAULT_OPENAI_MODEL)
|
121 |
-
} for i in range(1, 10) if os.getenv(f"OPENAI_API_KEY_{i}", "")
|
122 |
-
]
|
123 |
-
|
124 |
-
# Add main OPENAI key as primary
|
125 |
-
if os.getenv("OPENAI_API_KEY"):
|
126 |
-
configs["openai"].insert(0, {
|
127 |
-
"name": "main",
|
128 |
-
"api_key": os.getenv("OPENAI_API_KEY"),
|
129 |
-
"model": DEFAULT_OPENAI_MODEL
|
130 |
-
})
|
131 |
-
|
132 |
-
return configs
|
133 |
-
|
134 |
-
# Specialized API keys for different tasks
|
135 |
-
GROQ_API_KEY_TABULAR = os.getenv("GROQ_API_KEY_TABULAR", GROQ_API_KEY)
|
136 |
-
GEMINI_API_KEY_IMAGE = os.getenv("GEMINI_API_KEY_IMAGE", GEMINI_API_KEY)
|
137 |
-
GEMINI_API_KEY_MULTILINGUAL = os.getenv("GEMINI_API_KEY_MULTILINGUAL", GEMINI_API_KEY)
|
138 |
-
|
139 |
-
# Validation (optional - comment out for production)
|
140 |
-
# assert OPENAI_API_KEY, "OPENAI KEY NOT SET"
|
141 |
-
# assert GEMINI_API_KEY, "GEMINI KEY NOT SET"
|
142 |
-
# assert GROQ_API_KEY, "GROQ KEY NOT SET"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|