First of all lets us import all the packages those are required to build the model.
from kaggle_secrets import UserSecretsClient
user_secrets = UserSecretsClient()
hf_token = user_secrets.get_secret("HF_TOKEN")
from huggingface_hub import login
login(token = hf_token)
Lets install all the requirements
!pip install langchain_huggingface langchain_community gradio
Collecting langchain_huggingface
Downloading langchain_huggingface-[Link] (996 bytes)
Collecting langchain_community
Downloading langchain_community-[Link] (2.9 kB)
Requirement already satisfied: gradio in /usr/local/lib/python3.11/dist-packages (5.31.0)
Collecting langchain-core<1.0.0,>=0.3.70 (from langchain_huggingface)
Downloading langchain_core-[Link] (5.8 kB)
Requirement already satisfied: tokenizers>=0.19.1 in /usr/local/lib/python3.11/dist-packages (from
langchain_huggingface) (0.21.2)
Collecting huggingface-hub>=0.33.4 (from langchain_huggingface)
Downloading huggingface_hub-[Link] (14 kB)
Requirement already satisfied: langchain<1.0.0,>=0.3.26 in /usr/local/lib/python3.11/dist-packages (from
langchain_community) (0.3.26)
Requirement already satisfied: SQLAlchemy<3,>=1.4 in /usr/local/lib/python3.11/dist-packages (from
langchain_community) (2.0.41)
Requirement already satisfied: requests<3,>=2 in /usr/local/lib/python3.11/dist-packages (from
langchain_community) (2.32.4)
Requirement already satisfied: PyYAML>=5.3 in /usr/local/lib/python3.11/dist-packages (from
langchain_community) (6.0.2)
Requirement already satisfied: aiohttp<4.0.0,>=3.8.3 in /usr/local/lib/python3.11/dist-packages (from
langchain_community) (3.12.13)
Requirement already satisfied: tenacity!=8.4.0,<10,>=8.1.0 in /usr/local/lib/python3.11/dist-packages (from
langchain_community) (8.5.0)
Requirement already satisfied: dataclasses-json<0.7,>=0.5.7 in /usr/local/lib/python3.11/dist-packages (from
langchain_community) (0.6.7)
Collecting pydantic-settings<3.0.0,>=2.4.0 (from langchain_community)
Downloading pydantic_settings-[Link] (3.4 kB)
Requirement already satisfied: langsmith>=0.1.125 in /usr/local/lib/python3.11/dist-packages (from
langchain_community) (0.4.1)
Collecting httpx-sse<1.0.0,>=0.4.0 (from langchain_community)
Downloading httpx_sse-[Link] (9.4 kB)
Requirement already satisfied: numpy>=1.26.2 in /usr/local/lib/python3.11/dist-packages (from
langchain_community) (1.26.4)
Requirement already satisfied: aiofiles<25.0,>=22.0 in /usr/local/lib/python3.11/dist-packages (from gradio)
(22.1.0)
Requirement already satisfied: anyio<5.0,>=3.0 in /usr/local/lib/python3.11/dist-packages (from gradio) (4.9.0)
Requirement already satisfied: fastapi<1.0,>=0.115.2 in /usr/local/lib/python3.11/dist-packages (from gradio)
(0.115.13)
Requirement already satisfied: ffmpy in /usr/local/lib/python3.11/dist-packages (from gradio) (0.6.0)
Requirement already satisfied: gradio-client==1.10.1 in /usr/local/lib/python3.11/dist-packages (from gradio)
(1.10.1)
Requirement already satisfied: groovy~=0.1 in /usr/local/lib/python3.11/dist-packages (from gradio) (0.1.2)
Requirement already satisfied: httpx>=0.24.1 in /usr/local/lib/python3.11/dist-packages (from gradio) (0.28.1)
Requirement already satisfied: jinja2<4.0 in /usr/local/lib/python3.11/dist-packages (from gradio) (3.1.6)
Requirement already satisfied: markupsafe<4.0,>=2.0 in /usr/local/lib/python3.11/dist-packages (from gradio)
(3.0.2)
Requirement already satisfied: orjson~=3.0 in /usr/local/lib/python3.11/dist-packages (from gradio) (3.10.18)
Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from gradio) (25.0)
Requirement already satisfied: pandas<3.0,>=1.0 in /usr/local/lib/python3.11/dist-packages (from gradio)
(2.2.3)
Requirement already satisfied: pillow<12.0,>=8.0 in /usr/local/lib/python3.11/dist-packages (from gradio)
(11.2.1)
Requirement already satisfied: pydantic<2.12,>=2.0 in /usr/local/lib/python3.11/dist-packages (from gradio)
(2.11.7)
Requirement already satisfied: pydub in /usr/local/lib/python3.11/dist-packages (from gradio) (0.25.1)
Requirement already satisfied: python-multipart>=0.0.18 in /usr/local/lib/python3.11/dist-packages (from
gradio) (0.0.20)
Requirement already satisfied: ruff>=0.9.3 in /usr/local/lib/python3.11/dist-packages (from gradio) (0.12.0)
Requirement already satisfied: safehttpx<0.2.0,>=0.1.6 in /usr/local/lib/python3.11/dist-packages (from
gradio) (0.1.6)
Requirement already satisfied: semantic-version~=2.0 in /usr/local/lib/python3.11/dist-packages (from gradio)
(2.10.0)
Requirement already satisfied: starlette<1.0,>=0.40.0 in /usr/local/lib/python3.11/dist-packages (from gradio)
(0.46.2)
Requirement already satisfied: tomlkit<0.14.0,>=0.12.0 in /usr/local/lib/python3.11/dist-packages (from
gradio) (0.13.3)
Requirement already satisfied: typer<1.0,>=0.12 in /usr/local/lib/python3.11/dist-packages (from gradio)
(0.16.0)
Requirement already satisfied: typing-extensions~=4.0 in /usr/local/lib/python3.11/dist-packages (from
gradio) (4.14.0)
Requirement already satisfied: uvicorn>=0.14.0 in /usr/local/lib/python3.11/dist-packages (from gradio)
(0.34.3)
Requirement already satisfied: fsspec in /usr/local/lib/python3.11/dist-packages (from gradio-client==1.10.1-
>gradio) (2025.5.1)
Requirement already satisfied: websockets<16.0,>=10.0 in /usr/local/lib/python3.11/dist-packages (from
gradio-client==1.10.1->gradio) (15.0.1)
Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /usr/local/lib/python3.11/dist-packages (from
aiohttp<4.0.0,>=3.8.3->langchain_community) (2.6.1)
Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.11/dist-packages (from
aiohttp<4.0.0,>=3.8.3->langchain_community) (1.3.2)
Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.11/dist-packages (from
aiohttp<4.0.0,>=3.8.3->langchain_community) (25.3.0)
Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.11/dist-packages (from
aiohttp<4.0.0,>=3.8.3->langchain_community) (1.7.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.11/dist-packages (from
aiohttp<4.0.0,>=3.8.3->langchain_community) (6.6.3)
Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.11/dist-packages (from
aiohttp<4.0.0,>=3.8.3->langchain_community) (0.3.2)
Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.11/dist-packages (from
aiohttp<4.0.0,>=3.8.3->langchain_community) (1.20.1)
Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.11/dist-packages (from anyio<5.0,>=3.0-
>gradio) (3.10)
Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.11/dist-packages (from anyio<5.0,>=3.0-
>gradio) (1.3.1)
Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /usr/local/lib/python3.11/dist-packages (from
dataclasses-json<0.7,>=0.5.7->langchain_community) (3.26.1)
Requirement already satisfied: typing-inspect<1,>=0.4.0 in /usr/local/lib/python3.11/dist-packages (from
dataclasses-json<0.7,>=0.5.7->langchain_community) (0.9.0)
Requirement already satisfied: certifi in /usr/local/lib/python3.11/dist-packages (from httpx>=0.24.1->gradio)
(2025.6.15)
Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.11/dist-packages (from httpx>=0.24.1-
>gradio) (1.0.9)
Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.11/dist-packages (from httpcore==1.*-
>httpx>=0.24.1->gradio) (0.16.0)
Requirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from huggingface-
hub>=0.33.4->langchain_huggingface) (3.18.0)
Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.11/dist-packages (from huggingface-
hub>=0.33.4->langchain_huggingface) (4.67.1)
Requirement already satisfied: hf-xet<2.0.0,>=1.1.3 in /usr/local/lib/python3.11/dist-packages (from
huggingface-hub>=0.33.4->langchain_huggingface) (1.1.5)
Requirement already satisfied: langchain-text-splitters<1.0.0,>=0.3.8 in /usr/local/lib/python3.11/dist-
packages (from langchain<1.0.0,>=0.3.26->langchain_community) (0.3.8)
Requirement already satisfied: jsonpatch<2.0,>=1.33 in /usr/local/lib/python3.11/dist-packages (from
langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (1.33)
Requirement already satisfied: requests-toolbelt<2.0.0,>=1.0.0 in /usr/local/lib/python3.11/dist-packages
(from langsmith>=0.1.125->langchain_community) (1.0.0)
Requirement already satisfied: zstandard<0.24.0,>=0.23.0 in /usr/local/lib/python3.11/dist-packages (from
langsmith>=0.1.125->langchain_community) (0.23.0)
Requirement already satisfied: mkl_fft in /usr/local/lib/python3.11/dist-packages (from numpy>=1.26.2-
>langchain_community) (1.3.8)
Requirement already satisfied: mkl_random in /usr/local/lib/python3.11/dist-packages (from numpy>=1.26.2-
>langchain_community) (1.2.4)
Requirement already satisfied: mkl_umath in /usr/local/lib/python3.11/dist-packages (from numpy>=1.26.2-
>langchain_community) (0.1.1)
Requirement already satisfied: mkl in /usr/local/lib/python3.11/dist-packages (from numpy>=1.26.2-
>langchain_community) (2025.2.0)
Requirement already satisfied: tbb4py in /usr/local/lib/python3.11/dist-packages (from numpy>=1.26.2-
>langchain_community) (2022.2.0)
Requirement already satisfied: mkl-service in /usr/local/lib/python3.11/dist-packages (from numpy>=1.26.2-
>langchain_community) (2.4.1)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from
pandas<3.0,>=1.0->gradio) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from
pandas<3.0,>=1.0->gradio) (2025.2)
Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from
pandas<3.0,>=1.0->gradio) (2025.2)
Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.11/dist-packages (from
pydantic<2.12,>=2.0->gradio) (0.7.0)
Requirement already satisfied: pydantic-core==2.33.2 in /usr/local/lib/python3.11/dist-packages (from
pydantic<2.12,>=2.0->gradio) (2.33.2)
Requirement already satisfied: typing-inspection>=0.4.0 in /usr/local/lib/python3.11/dist-packages (from
pydantic<2.12,>=2.0->gradio) (0.4.1)
Collecting python-dotenv>=0.21.0 (from pydantic-settings<3.0.0,>=2.4.0->langchain_community)
Downloading python_dotenv-[Link] (24 kB)
Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from
requests<3,>=2->langchain_community) (3.4.2)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from
requests<3,>=2->langchain_community) (2.5.0)
Requirement already satisfied: greenlet>=1 in /usr/local/lib/python3.11/dist-packages (from
SQLAlchemy<3,>=1.4->langchain_community) (3.2.3)
Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.11/dist-packages (from typer<1.0,>=0.12-
>gradio) (8.2.1)
Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.11/dist-packages (from
typer<1.0,>=0.12->gradio) (1.5.4)
Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.11/dist-packages (from
typer<1.0,>=0.12->gradio) (14.0.0)
Requirement already satisfied: jsonpointer>=1.9 in /usr/local/lib/python3.11/dist-packages (from
jsonpatch<2.0,>=1.33->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (3.0.0)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-
dateutil>=2.8.2->pandas<3.0,>=1.0->gradio) (1.17.0)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.11/dist-packages (from
rich>=10.11.0->typer<1.0,>=0.12->gradio) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.11/dist-packages (from
rich>=10.11.0->typer<1.0,>=0.12->gradio) (2.19.2)
Requirement already satisfied: mypy-extensions>=0.3.0 in /usr/local/lib/python3.11/dist-packages (from
typing-inspect<1,>=0.4.0->dataclasses-json<0.7,>=0.5.7->langchain_community) (1.1.0)
Requirement already satisfied: intel-openmp<2026,>=2024 in /usr/local/lib/python3.11/dist-packages (from
mkl->numpy>=1.26.2->langchain_community) (2024.2.0)
Requirement already satisfied: tbb==2022.* in /usr/local/lib/python3.11/dist-packages (from mkl-
>numpy>=1.26.2->langchain_community) (2022.2.0)
Requirement already satisfied: tcmlib==1.* in /usr/local/lib/python3.11/dist-packages (from tbb==2022.*-
>mkl->numpy>=1.26.2->langchain_community) (1.4.0)
Requirement already satisfied: intel-cmplr-lib-rt in /usr/local/lib/python3.11/dist-packages (from mkl_umath-
>numpy>=1.26.2->langchain_community) (2024.2.0)
Requirement already satisfied: intel-cmplr-lib-ur==2024.2.0 in /usr/local/lib/python3.11/dist-packages (from
intel-openmp<2026,>=2024->mkl->numpy>=1.26.2->langchain_community) (2024.2.0)
Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.11/dist-packages (from markdown-it-
py>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio) (0.1.2)
Downloading langchain_huggingface-[Link] (27 kB)
Downloading langchain_community-[Link] (2.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.5/2.5 MB 26.2 MB/s eta 0:00:0000:0100:01
Downloading httpx_sse-[Link] (8.1 kB)
Downloading huggingface_hub-[Link] (561 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 561.5/561.5 kB 24.8 MB/s eta 0:00:00
Downloading langchain_core-[Link] (443 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 443.5/443.5 kB 17.8 MB/s eta 0:00:00
Downloading pydantic_settings-[Link] (45 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.2/45.2 kB 1.9 MB/s eta 0:00:00
Downloading python_dotenv-[Link] (20 kB)
Installing collected packages: python-dotenv, httpx-sse, huggingface-hub, pydantic-settings, langchain-core,
langchain_huggingface, langchain_community
Attempting uninstall: huggingface-hub
Found existing installation: huggingface-hub 0.33.1
Uninstalling huggingface-hub-0.33.1:
Successfully uninstalled huggingface-hub-0.33.1
Attempting uninstall: langchain-core
Found existing installation: langchain-core 0.3.66
Uninstalling langchain-core-0.3.66:
Successfully uninstalled langchain-core-0.3.66
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This
behaviour is the source of the following dependency conflicts.
datasets 3.6.0 requires fsspec[http]<=2025.3.0,>=2023.1.0, but you have fsspec 2025.5.1 which is
incompatible.
Successfully installed httpx-sse-0.4.1 huggingface-hub-0.34.4 langchain-core-0.3.74 langchain_community-
0.3.27 langchain_huggingface-0.3.1 pydantic-settings-2.10.1 python-dotenv-1.1.1
Lets import all the necessary packages and modules
import gradio as gr
import os
import tempfile
from typing import List, Any, Optional
import warnings
[Link]("ignore")
from langchain.text_splitter import RecursiveCharacterTextSplitter
from [Link] import FAISS
from [Link] import HuggingFaceEmbeddings
from [Link] import HuggingFacePipeline
from [Link] import RetrievalQA
from langchain.document_loaders import (
PyPDFLoader,
TextLoader,
CSVLoader,
UnstructuredWordDocumentLoader,
UnstructuredPowerPointLoader,
UnstructuredExcelLoader
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
2025-08-14 06:59:48.721863: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:477] Unable to
register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1755154789.016415 36 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to
register factory for plugin cuDNN when one has already been registered
E0000 00:00:1755154789.105104 36 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to
register factory for plugin cuBLAS when one has already been registered
Main Class function for the QA-LLM-Retrieval-Chain
class MultiRagSystem:
def __init__(self):
[Link] = None
[Link] = None
[Link] = None
[Link] = None
self.qa_chain = None
[Link] = []
self.setup_embeddings()
def setup_embeddings(self):
print("Trying to Initialize the Embedding model")
try:
model_name = 'sentence-transformers/all-MiniLM-L6-v2'
[Link] = HuggingFaceEmbeddings(model_name = model_name)
print("The Embedding model has been successfully created!! ")
except Exception as e:
return f"There was an error occured while creating the embedding model: {e}"
def create_llm(self,model_name):
print("Trying to create Your model")
try:
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
pipe = pipeline(
'text-generation',
tokenizer = tokenizer,
model = model,
max_new_tokens = 512,
do_sample = True,
temperature = 0.7
[Link] = HuggingFacePipeline(pipeline = pipe)
return f"Your model {model_name} has been created successfully"
except Exception as e1:
return f"There was an error in creating the model: {e1}"
def process_files(self, files):
if not files:
return "Please try uploading a file"
documents = []
try:
for file in files:
filename = [Link]
if [Link]('txt'):
loader = TextLoader(filename).load()
elif [Link]('pdf'):
loader = PyPDFLoader(filename).load()
elif [Link]('csv'):
loader = CSVLoader(filename).load()
elif [Link]('ppt') or [Link]('pptx'):
loader = UnstructuredPowerPointLoader(filename).load()
elif [Link]('xls') or [Link]('xlsx'):
loader = UnstructuredExcelLoader(filename).load()
else:
continue
[Link](loader)
print(f"Loaded {len(loader)} documents from {filename}")
except Exception as e2:
return f"Error Loading the File path: {e2}"
try:
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
[Link](text_splitter.split_documents(documents))
return "Your document is loaded successfully and its chunks were split"
except Exception as e3:
return f"There is an error in splitting the documents: {e3}"
def create_vdb(self):
if not [Link]:
return "You documents are not preprocessed"
if not [Link]:
return "Your Chunks are not stored in the vector database"
try:
vector_db = FAISS.from_documents([Link],[Link])
[Link] = vector_db.as_retriever()
return "Sucessfully the Vector Database has been created"
except Exception as e4:
return f"The is an error in creating the Vector DataBase: {e4}"
def create_retrieval_chain(self):
if not [Link]:
return "Your LLM has not been created still please complete the preprocessing steps"
if not [Link]:
return "Cant Fetch data from the vector database"
try:
self.qa_chain = RetrievalQA.from_chain_type(
llm = [Link],
retriever = [Link],
return_source_documents = True,
verbose = True
return "Your Q and A Retrieval Model has been created Successfully"
except Exception as e5:
return "You Q and A Retrieval Model has not been created. Please try completing the preprocessing
steps"
def query(self,msg,chat_history):
if not self.qa_chain:
return "Your Retirval QA chain has not Built yet complete building that"
try:
result = self.qa_chain.invoke({'query':msg})
answer = result['result']
source_docs = [Link]('source_documents',[])
source = []
for i,docs in enumerate(source_docs[:3]):
source_info = f"**Source{i+1} :**{[Link]('source','Unknown')}..\n"
source_info += f"**Document Contents: ** {docs.page_content[:200]}...\n"
[Link](source_info)
response = f"**Bot's Reply: ** {answer}"
if source:
response += "\n**Sources:**\n" + "\n".join(source)
return response,[]
except Exception as e6:
return "Error while Querying",[]
Creating Object for the Class
rag_model = MultiRagSystem()
Trying to Initialize the Embedding model
The Embedding model has been successfully created!!
Calling each and every methods in the Class to finish the initial setup to run the model.
def build_model(model_name):
if not model_name.strip():
model_name = 'microsoft/phi-1_5'
status = rag_model.create_llm(model_name)
return status
def load_files(files):
if not files:
return "Upload Some files first"
status = rag_model.process_files(files)
return status
def create_vector_database():
return rag_model.create_vdb()
def create_qa_retrieval_chain():
return rag_model.create_retrieval_chain()
def ask_your_bot(msg,chat_history):
response ,_ = rag_model.query(msg,chat_history)
return response
!pip install langchain_huggingface faiss-cpu
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling
parallelism to avoid deadlocks...
To disable this warning, you can either:
- Avoid using `tokenizers` before the fork if possible
- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
Requirement already satisfied: langchain_huggingface in /usr/local/lib/python3.11/dist-packages (0.3.1)
Requirement already satisfied: faiss-cpu in /usr/local/lib/python3.11/dist-packages (1.12.0)
Requirement already satisfied: langchain-core<1.0.0,>=0.3.70 in /usr/local/lib/python3.11/dist-packages (from
langchain_huggingface) (0.3.74)
Requirement already satisfied: tokenizers>=0.19.1 in /usr/local/lib/python3.11/dist-packages (from
langchain_huggingface) (0.21.2)
Requirement already satisfied: huggingface-hub>=0.33.4 in /usr/local/lib/python3.11/dist-packages (from
langchain_huggingface) (0.34.4)
Requirement already satisfied: numpy<3.0,>=1.25.0 in /usr/local/lib/python3.11/dist-packages (from faiss-cpu)
(1.26.4)
Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from faiss-cpu) (25.0)
Requirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from huggingface-
hub>=0.33.4->langchain_huggingface) (3.18.0)
Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.11/dist-packages (from huggingface-
hub>=0.33.4->langchain_huggingface) (2025.5.1)
Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.11/dist-packages (from huggingface-
hub>=0.33.4->langchain_huggingface) (6.0.2)
Requirement already satisfied: requests in /usr/local/lib/python3.11/dist-packages (from huggingface-
hub>=0.33.4->langchain_huggingface) (2.32.4)
Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.11/dist-packages (from huggingface-
hub>=0.33.4->langchain_huggingface) (4.67.1)
Requirement already satisfied: typing-extensions>=[Link] in /usr/local/lib/python3.11/dist-packages (from
huggingface-hub>=0.33.4->langchain_huggingface) (4.14.0)
Requirement already satisfied: hf-xet<2.0.0,>=1.1.3 in /usr/local/lib/python3.11/dist-packages (from
huggingface-hub>=0.33.4->langchain_huggingface) (1.1.5)
Requirement already satisfied: langsmith>=0.3.45 in /usr/local/lib/python3.11/dist-packages (from langchain-
core<1.0.0,>=0.3.70->langchain_huggingface) (0.4.1)
Requirement already satisfied: tenacity!=8.4.0,<10.0.0,>=8.1.0 in /usr/local/lib/python3.11/dist-packages
(from langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (8.5.0)
Requirement already satisfied: jsonpatch<2.0,>=1.33 in /usr/local/lib/python3.11/dist-packages (from
langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (1.33)
Requirement already satisfied: pydantic>=2.7.4 in /usr/local/lib/python3.11/dist-packages (from langchain-
core<1.0.0,>=0.3.70->langchain_huggingface) (2.11.7)
Requirement already satisfied: mkl_fft in /usr/local/lib/python3.11/dist-packages (from numpy<3.0,>=1.25.0-
>faiss-cpu) (1.3.8)
Requirement already satisfied: mkl_random in /usr/local/lib/python3.11/dist-packages (from
numpy<3.0,>=1.25.0->faiss-cpu) (1.2.4)
Requirement already satisfied: mkl_umath in /usr/local/lib/python3.11/dist-packages (from
numpy<3.0,>=1.25.0->faiss-cpu) (0.1.1)
Requirement already satisfied: mkl in /usr/local/lib/python3.11/dist-packages (from numpy<3.0,>=1.25.0-
>faiss-cpu) (2025.2.0)
Requirement already satisfied: tbb4py in /usr/local/lib/python3.11/dist-packages (from numpy<3.0,>=1.25.0-
>faiss-cpu) (2022.2.0)
Requirement already satisfied: mkl-service in /usr/local/lib/python3.11/dist-packages (from
numpy<3.0,>=1.25.0->faiss-cpu) (2.4.1)
Requirement already satisfied: jsonpointer>=1.9 in /usr/local/lib/python3.11/dist-packages (from
jsonpatch<2.0,>=1.33->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (3.0.0)
Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.11/dist-packages (from
langsmith>=0.3.45->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (0.28.1)
Requirement already satisfied: orjson<4.0.0,>=3.9.14 in /usr/local/lib/python3.11/dist-packages (from
langsmith>=0.3.45->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (3.10.18)
Requirement already satisfied: requests-toolbelt<2.0.0,>=1.0.0 in /usr/local/lib/python3.11/dist-packages
(from langsmith>=0.3.45->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (1.0.0)
Requirement already satisfied: zstandard<0.24.0,>=0.23.0 in /usr/local/lib/python3.11/dist-packages (from
langsmith>=0.3.45->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (0.23.0)
Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.11/dist-packages (from
pydantic>=2.7.4->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (0.7.0)
Requirement already satisfied: pydantic-core==2.33.2 in /usr/local/lib/python3.11/dist-packages (from
pydantic>=2.7.4->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (2.33.2)
Requirement already satisfied: typing-inspection>=0.4.0 in /usr/local/lib/python3.11/dist-packages (from
pydantic>=2.7.4->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (0.4.1)
Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from
requests->huggingface-hub>=0.33.4->langchain_huggingface) (3.4.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests-
>huggingface-hub>=0.33.4->langchain_huggingface) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests-
>huggingface-hub>=0.33.4->langchain_huggingface) (2.5.0)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests-
>huggingface-hub>=0.33.4->langchain_huggingface) (2025.6.15)
Requirement already satisfied: intel-openmp<2026,>=2024 in /usr/local/lib/python3.11/dist-packages (from
mkl->numpy<3.0,>=1.25.0->faiss-cpu) (2024.2.0)
Requirement already satisfied: tbb==2022.* in /usr/local/lib/python3.11/dist-packages (from mkl-
>numpy<3.0,>=1.25.0->faiss-cpu) (2022.2.0)
Requirement already satisfied: tcmlib==1.* in /usr/local/lib/python3.11/dist-packages (from tbb==2022.*-
>mkl->numpy<3.0,>=1.25.0->faiss-cpu) (1.4.0)
Requirement already satisfied: intel-cmplr-lib-rt in /usr/local/lib/python3.11/dist-packages (from mkl_umath-
>numpy<3.0,>=1.25.0->faiss-cpu) (2024.2.0)
Requirement already satisfied: anyio in /usr/local/lib/python3.11/dist-packages (from httpx<1,>=0.23.0-
>langsmith>=0.3.45->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (4.9.0)
Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.11/dist-packages (from
httpx<1,>=0.23.0->langsmith>=0.3.45->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (1.0.9)
Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.11/dist-packages (from httpcore==1.*-
>httpx<1,>=0.23.0->langsmith>=0.3.45->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (0.16.0)
Requirement already satisfied: intel-cmplr-lib-ur==2024.2.0 in /usr/local/lib/python3.11/dist-packages (from
intel-openmp<2026,>=2024->mkl->numpy<3.0,>=1.25.0->faiss-cpu) (2024.2.0)
Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.11/dist-packages (from anyio-
>httpx<1,>=0.23.0->langsmith>=0.3.45->langchain-core<1.0.0,>=0.3.70->langchain_huggingface) (1.3.1)
Creating user friendly UI with Gradio.
with [Link]() as app:
[Link]("# Starting up the Multi Files Rag Model")
with [Link]():
with [Link](scale = 1):
[Link]("## Set up the Pre-requisites of the models")
with [Link]():
[Link]("## Setting up the LLM Models")
model_input = [Link](
label = 'Enter the Model name to load the model: ',
placeholder = 'Model names like gpt-2, microsoft/phi-1_5'
submit_model = [Link]("Load Model")
model_load_status = [Link]("Model Loaded Staus", interactive = False)
with [Link]():
[Link]("## Upload the documents....")
files = [Link](
label = 'Upload text,csv,pdf,ppt,pptx,doc,docx files',
file_count = 'multiple',
file_types = ['.pdf','.csv','.doc','.docx','.pdf','.ppt','.pptx','.xls','.xlsx']
submit_files = [Link]("Submit Files")
files_submit_status = [Link](label = 'Files uploaded status',interactive = False)
with [Link]():
[Link]("## Create a Vector Database")
vector_btn = [Link]("Click to Create the FAISS VectorBase")
vector_status = [Link](label = 'Status of Creation of the Vector Base', interactive = False)
with [Link]():
[Link]("## Setting up QA-Chain")
qa_chain_btn = [Link]("Click to Create the Retrieval QA chain")
qa_status = [Link](label = 'Status of the QA Chian', interactive = False)
with [Link](scale = 2):
[Link]("## 🤖 Chat Bot Interface...")
chat_bot = [Link](
label = 'Hii This is your Multi Rag Chat Bot',
height = 400,
show_label = True,
container = True
)
with [Link]():
msg = [Link](
label = 'Enter Your question here: ',
placeholder = 'Ask your Bot a Question about the document that you have uploaded',
scale = 4
submit_msg = [Link]("Ask Bot")
clear_btn = [Link]("Clear Chat")
with [Link]():
[Link]("## 📚 Example Questions")
[Link](
examples=[
["What is the main topic discussed in the documents?"],
["Can you summarize the key points from the uploaded files?"],
["What are the important dates or numbers mentioned?"],
["Explain the methodology described in the documents."],
["What conclusions can be drawn from the data?"]
],
inputs=msg
submit_model.click(fn = build_model,inputs = [model_input],outputs = [model_load_status])
submit_files.click(fn = load_files,inputs=[files],outputs = [files_submit_status])
vector_btn.click(fn = create_vector_database,inputs = [],outputs = [vector_status])
qa_chain_btn.click(fn = create_qa_retrieval_chain,inputs = [],outputs = [qa_status])
def respond(msg,chat_history):
if not [Link]():
return "",chat_history,
response = ask_your_bot(msg,chat_history)
chat_history.append((msg,response))
return "",chat_history
submit_msg.click(fn = respond,inputs = [msg,chat_bot],outputs = [msg,chat_bot])
[Link](fn = respond,inputs = [msg,chat_bot],outputs = [msg,chat_bot])
clear_btn.click(fn = lambda:[],outputs = [chat_bot])
Running the Model.
if __name__ == "__main__":
[Link]()
* Running on local URL: [Link]
It looks like you are running Gradio on a hosted a Jupyter notebook. For the Gradio app to work, sharing must
be enabled. Automatically setting `share=True` (you can turn this off by setting `share=False` in `launch()`
explicitly).
* Running on public URL: [Link]
This share link expires in 1 week. For free permanent hosting and GPU upgrades, run `gradio deploy` from the
terminal in the working directory to deploy to Hugging Face Spaces ([Link]
Trying to create Your model
Device set to use cpu
Loaded 18 documents from
/tmp/gradio/34a5d1ef92e4347fad2ae57454256121c1433588afd6d0743e1c251d66589cc3/
[Link]
> Entering new RetrievalQA chain...
> Finished chain.