MedicalChatbot_v2.0 / src /upload_file.py
sxandie's picture
updated UI options
2ace558 verified
from src.prepare_openAIEmbeddings_vectordb import PrepareVectorDB
from typing import List, Tuple
from src.load_config import LoadConfig
APP_CONFIG = LoadConfig()
class UploadFile:
"""
Utility class for handling file uploads and processing.
This class provides static methods for checking directories and processing uploaded files
to prepare a VectorDB.
"""
@staticmethod
def process_uploaded_files(files_dir: List, chatbot: List, rag_with_dropdown: str) -> Tuple:
"""
Prepares and saves a VectorDB from uploaded files.
Parameters:
files_dir (List): List of paths to the uploaded files.
chatbot: An instance of the chatbot for communication.
Returns:
Tuple: A tuple containing an empty string and the updated chatbot instance.
"""
if rag_with_dropdown == "Upload new data":
prepare_vectordb_instance = PrepareVectorDB(data_directory=files_dir,
persist_directory=APP_CONFIG.custom_persist_directory,
embedding_model_engine=APP_CONFIG.embedding_model_engine,
chunk_size=APP_CONFIG.chunk_size,
chunk_overlap=APP_CONFIG.chunk_overlap)
prepare_vectordb_instance.prepare_and_save_vectordb()
chatbot.append(
(" ", "Uploaded files are ready for querying."))
else:
chatbot.append(
(" ", "If you want to upload your own PDF, please select 'Upload new data' from the dropdown."))
return "", chatbot