Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -28,8 +28,8 @@ from langchain.retrievers import ContextualCompressionRetriever
|
|
| 28 |
from langchain.retrievers.document_compressors import CrossEncoderReranker
|
| 29 |
from langchain_community.cross_encoders import HuggingFaceCrossEncoder
|
| 30 |
from langchain.prompts import ChatPromptTemplate
|
| 31 |
-
from langchain_nvidia_ai_endpoints.embeddings import NVIDIAEmbeddings
|
| 32 |
-
from langchain_nvidia_ai_endpoints.reranking import NVIDIARerank
|
| 33 |
|
| 34 |
import os
|
| 35 |
from sentence_transformers import SentenceTransformer
|
|
@@ -68,19 +68,19 @@ async def lifespan(app: FastAPI):
|
|
| 68 |
raise RuntimeError("CRITICAL: Missing GOOGLE_API_KEY in environment secrets!")
|
| 69 |
|
| 70 |
# Load models into the shared dictionary
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
ml_models["embedder"] = NVIDIAEmbeddings(model="nvidia/nv-embedqa-e5-v5", nvidia_api_key=nvidia_api_key)
|
| 79 |
|
| 80 |
)
|
| 81 |
cross_encoder_model = HuggingFaceCrossEncoder(model_name="BAAI/bge-reranker-base")
|
| 82 |
# cross_encoder_model = HuggingFaceCrossEncoder(model_name="BAAI/bge-reranker-large")
|
| 83 |
-
ml_models["reranker_compressor"] = CrossEncoderReranker(model=cross_encoder_model, top_n=
|
| 84 |
ml_models["llm"] = ChatGoogleGenerativeAI(
|
| 85 |
# model="gemini-1.5-pro",
|
| 86 |
model="gemini-2.0-flash",
|
|
@@ -174,12 +174,12 @@ async def run_hackrx(req: RunRequest):
|
|
| 174 |
)
|
| 175 |
|
| 176 |
# dense_retriever = vectorstore.as_retriever(search_type="mmr",search_kwargs={"k": 8})
|
| 177 |
-
dense_retriever = vectorstore.as_retriever(search_type="mmr",search_kwargs={"k":
|
| 178 |
|
| 179 |
|
| 180 |
# Create retrievers using the pre-loaded models from our ml_models dictionary
|
| 181 |
keyword_retriever = BM25Retriever.from_documents(chunks)
|
| 182 |
-
keyword_retriever.k =
|
| 183 |
# dense_retriever = Chroma.from_documents(documents=chunks, embedding=ml_models["embedder"]).as_retriever()
|
| 184 |
ensemble_retriever = EnsembleRetriever(retrievers=[keyword_retriever, dense_retriever], weights=[0.35, 0.65])
|
| 185 |
### to make it faster we are now using our built reranker thats why commenting the code below
|
|
|
|
| 28 |
from langchain.retrievers.document_compressors import CrossEncoderReranker
|
| 29 |
from langchain_community.cross_encoders import HuggingFaceCrossEncoder
|
| 30 |
from langchain.prompts import ChatPromptTemplate
|
| 31 |
+
# from langchain_nvidia_ai_endpoints.embeddings import NVIDIAEmbeddings
|
| 32 |
+
# from langchain_nvidia_ai_endpoints.reranking import NVIDIARerank
|
| 33 |
|
| 34 |
import os
|
| 35 |
from sentence_transformers import SentenceTransformer
|
|
|
|
| 68 |
raise RuntimeError("CRITICAL: Missing GOOGLE_API_KEY in environment secrets!")
|
| 69 |
|
| 70 |
# Load models into the shared dictionary
|
| 71 |
+
ml_models["embedder"] = HuggingFaceEmbeddings(
|
| 72 |
+
model_name="BAAI/bge-base-en-v1.5", #better but lil slower
|
| 73 |
+
# model_name="intfloat/e5-large-v2", #lil faster but dont know response is slow
|
| 74 |
+
encode_kwargs={
|
| 75 |
+
"batch_size": 64,
|
| 76 |
+
# "normalize_embeddings": True
|
| 77 |
+
}
|
| 78 |
+
# ml_models["embedder"] = NVIDIAEmbeddings(model="nvidia/nv-embedqa-e5-v5", nvidia_api_key=nvidia_api_key)
|
| 79 |
|
| 80 |
)
|
| 81 |
cross_encoder_model = HuggingFaceCrossEncoder(model_name="BAAI/bge-reranker-base")
|
| 82 |
# cross_encoder_model = HuggingFaceCrossEncoder(model_name="BAAI/bge-reranker-large")
|
| 83 |
+
ml_models["reranker_compressor"] = CrossEncoderReranker(model=cross_encoder_model, top_n=8)
|
| 84 |
ml_models["llm"] = ChatGoogleGenerativeAI(
|
| 85 |
# model="gemini-1.5-pro",
|
| 86 |
model="gemini-2.0-flash",
|
|
|
|
| 174 |
)
|
| 175 |
|
| 176 |
# dense_retriever = vectorstore.as_retriever(search_type="mmr",search_kwargs={"k": 8})
|
| 177 |
+
dense_retriever = vectorstore.as_retriever(search_type="mmr",search_kwargs={"k": 12 ,"lambda_mult": 0.5})
|
| 178 |
|
| 179 |
|
| 180 |
# Create retrievers using the pre-loaded models from our ml_models dictionary
|
| 181 |
keyword_retriever = BM25Retriever.from_documents(chunks)
|
| 182 |
+
keyword_retriever.k = 8
|
| 183 |
# dense_retriever = Chroma.from_documents(documents=chunks, embedding=ml_models["embedder"]).as_retriever()
|
| 184 |
ensemble_retriever = EnsembleRetriever(retrievers=[keyword_retriever, dense_retriever], weights=[0.35, 0.65])
|
| 185 |
### to make it faster we are now using our built reranker thats why commenting the code below
|