From 038f37e40dca6dfaf2f2dd407436f279b9bf3943 Mon Sep 17 00:00:00 2001 From: SubhadityaMukherjee Date: Wed, 3 Jul 2024 12:25:11 +0200 Subject: [PATCH] refactored flow and dataset logic --- backend/data/.langchain.db | Bin 3751936 -> 3780608 bytes backend/modules/general_utils.py | 3 - backend/modules/llm.py | 17 +- backend/modules/metadata_utils.py | 298 +-- .../run multiple queries and aggregate.ipynb | 457 +---- .../train and evaluate models.ipynb | 466 +---- docs/images/search_ui.png | Bin 0 -> 473495 bytes docs/index.md | 4 + frontend/ui.py | 18 +- site/404.html | 23 +- site/configuration/index.html | 23 +- .../change model/index.html | 74 +- .../create vectordb/index.html | 43 +- .../get an llm summary/index.html | 36 +- site/developer tutorials/index.html | 45 +- .../load vectordb and get results/index.html | 43 +- .../index.html | 37 +- .../train and evaluate models/index.html | 1754 +++++++++++++++++ site/docker/index.html | 23 +- site/images/search_ui.png | Bin 0 -> 473495 bytes site/index.html | 51 +- site/inference/index.html | 23 +- site/modules/general_utils/index.html | 25 +- site/modules/llm_module/index.html | 27 +- site/modules/metadata_module/index.html | 27 +- site/modules/result_gen/index.html | 23 +- site/search/search_index.json | 2 +- site/sitemap.xml.gz | Bin 127 -> 127 bytes site/testing/index.html | 23 +- site/training/index.html | 23 +- 30 files changed, 2464 insertions(+), 1124 deletions(-) create mode 100644 docs/images/search_ui.png create mode 100644 site/developer tutorials/train and evaluate models/index.html create mode 100644 site/images/search_ui.png diff --git a/backend/data/.langchain.db b/backend/data/.langchain.db index 1ed6d58caad029aac68f6a635bc9e57588da65a6..e8a493eecb4f4e5d2f28f6b9ff2cb366e8072f98 100644 GIT binary patch delta 4046 zcmcInTWl298TRgaeP`|Ur5GE-0f*MOV|(rw(+Y?Ig`y&&pj1^OamMShJ zVB_s;nRMfNL(^)esbgp3ddsz+XVLA(^g9d9ce51zMi`;VXS;Vt|6CjSX`&I9yS%b` z!-!UIm}h^`l1zCGEh{MxQgW#s%eP)W(Rw%g>UUa}|F(~ATpoC;p8C7g&Gn;6o=>9{ z(^_n1rLIH^$J-AiBY5>jD%$u~^PdyZ#$xNyRNE*zW(T(K1e4M7&E!Uk9(lffgkFEG z`Bge_yZs6zH#E=>SDN?Hw?0aoiqLBN?-TStZ|NUL%fDz2Q}m+T+#X#&A)HAjPQY;g zYD%Vl9IZc{d?Wce+T5e>9T+?p-P+NkQp7}$!NPQ(c6bh0oBe!7BIX?1cQK90`mp!k*|By8_C<2ajdDIOi7U&}`W&pn_XOiXo%GLk0UKBnh%CjicjsZayxLTp#7UyjON+kX@WX zWv5hj{18g}D42KZol(v%A%EU3IRf%4pa-gyU=dFHf}_bybQc~^$c z=795#n-_QhDpm^94$KiO@@gg65tX1!P@A{pl`45oN_8Rzzzh@7r~}A)m2%D*M`rb!;1aNlpb9=3=!of|wm5?-2XChx*wG1RI5aS^lM7JE@dFT2&YLT` zO!C`eh^D5{)88IDJ%!Y9aeFAe3Q$-@6HUV(i@G;2zLEqJXN<8Lnu~#RmOEuJxloRLn_HA6HdbG<5px+`*UWuZKsv>BRTD`=jDBozExP z_v_7Q?XT_cCZl1sizXv{(6SQIk>7USPoy=)6iu3K>+OrsobYjydVk5brr|pviF9o? z(;F>Wou?aFjjPeZ*{(#QQ?*1>K#C=qihyK|-nr2+5S?k=z1kEF+%x-=^kOC>)2aKy z82#_sP9e%%@3`DZm2dRik3WV(r+RYqfRSB@_WUgKW|IE>wZT66wLiA^)1|LxZbe~F z#|Md&rkn896h62zZ0(>^ci`pg&vc~e=)b#16B>Q*cy}LtesS zJ!5<6+eGLJ6$4(%hGan*MTUJP(bOSZHlU7XD7p^Mq7H?0k-;HBb3>8gr6j5f!|Nab!G& zqKbTIQDZB!Ub@K!5bFo=a2&8t1Z$xwGuU|NY6^VSjbK`AVM%4Msj|k>0c3c= z2~}0aU@S3K4Ys7L={$jrz*9KWvLv(9xIWT!iHUug@jv>2FdQ<1S{h%#NenduF;l^Dxn-iiCMeL1q0!dk~Fg%H-C1u-Eo@FC7LO(ryn zNw2Cvl`(3WIz%aqc-d&F!A3XU&Flu|U{JtD;b2IH$&~@cJ_B!nTc!JM^o&yRmElJH zk$}sh%38fQw zRW8Man1 zqCIir)>xBNZmX&(z_lTGW)sT~yReoQ-_D=~u5rluth<>Z`MAajA2_Gh>ybjJ8Jf8$ z)@NNjpRTpX7^Dkgwpf@-zv|fECWG2FRW{&*X}_NBZG(MuMS*Krq3E#MpR`PR>Gs56 o8iGWNuI-ikh7=QE+3%dU^XFzN@qgp?Pa;V-BtGdVK4f~HsC}UERvQ#9Js>CubHJOmQOiDwhq$w?#mKm9qIhmKX zEXblPNk^7tMOLLNiLA-GY{;f;$+qmsuI$Oa9LS*@$+4Wsshr8VT*#$d$@LfM$6Ku& s str: if torch.cuda.is_available(): return "cuda" elif torch.backends.mps.is_available(): - if training == False: - # loading metadata on mps for inference is quite slow. So disabling for now. - return "cpu" return "mps" else: return "cpu" diff --git a/backend/modules/llm.py b/backend/modules/llm.py index 4d17ef8..fbc21c6 100644 --- a/backend/modules/llm.py +++ b/backend/modules/llm.py @@ -256,13 +256,14 @@ def setup_vector_db_and_qa(config: dict, data_type: str, client:ClientAPI) -> la """ config["type_of_data"] = data_type + # Download the data if it does not exist - openml_data_object, data_id, all_metadata = get_all_metadata_from_openml( + openml_data_object, data_id, all_metadata, handler = get_all_metadata_from_openml( config=config ) # Create the combined metadata dataframe metadata_df, all_metadata = create_metadata_dataframe( - openml_data_object, data_id, all_metadata, config=config + handler, openml_data_object, data_id, all_metadata, config=config ) # Create the vector store vectordb = load_document_and_create_vector_store( @@ -297,15 +298,3 @@ def get_llm_chain(config: dict, local:bool =False) -> LLMChain|bool: def get_llm_result_from_string(llm_chain, string): return llm_chain.invoke({"docs": string}) # return llm_chain.stream({"docs": string}) - -# def get_llm_result(docs: Sequence[Document], config:dict): -# try: -# llm_chain = get_llm_chain(config=config, local=False) -# return llm_chain.invoke({"docs": docs}) -# except Exception as e: -# # print(e) -# llm_chain = get_llm_chain(config=config, local=True) -# return llm_chain.invoke({"docs": docs}) - # return "LLM model failed to generate a summary at the moment, please try again later." - # llm_chain = get_llm_chain(config=config, local=True) - # return llm_chain.invoke({"docs": docs}) diff --git a/backend/modules/metadata_utils.py b/backend/modules/metadata_utils.py index 8067bc3..71fd3cd 100644 --- a/backend/modules/metadata_utils.py +++ b/backend/modules/metadata_utils.py @@ -11,37 +11,6 @@ # -- DOWNLOAD METADATA -- -def get_dataset_description(dataset_id) -> openml.datasets.dataset.OpenMLDataset: - """ - Get the dataset description from OpenML using the dataset id - - Input: dataset_id (int) : The dataset id - - Returns: data (openml.datasets.dataset.OpenMLDataset) : The dataset object from OpenML - """ - # TODO : Check for objects that do not have qualities being not downloaded properly - # try: - data = openml.datasets.get_dataset( - dataset_id=dataset_id, - download_data=False, - download_qualities=True, - download_features_meta_data=True, - ) - - return data - - -def get_flow_description(flow_id: int) -> openml.flows.flow.OpenMLFlow: - """ - Get the flow description from OpenML using the flow id - - Input: flow_id (int) : The flow id - - Returns: data (openml.flows.flow.OpenMLFlow) : The flow object from OpenML - """ - return openml.flows.get_flow(flow_id=flow_id) - - def load_metadata_from_file(save_filename: str) -> Tuple[pd.DataFrame, Sequence[int], pd.DataFrame]: """ Load metadata from a file. @@ -57,44 +26,157 @@ def save_metadata_to_file(data, save_filename: str): with open(save_filename, "wb") as f: pickle.dump(data, f) - -def initialize_cache(type_of_data: str, data_id: Sequence[int]) -> None: +class OpenMLObjectHandler: """ - Initialize cache for the OpenML objects. + Description: The base class for handling OpenML objects. """ - if type_of_data == "dataset": - get_dataset_description(data_id[0]) - elif type_of_data == "flow": - get_flow_description(data_id[0]) - + def __init__(self, config): + self.config = config + self.collection_name = "" + + def get_description(self, data_id: int): + """ + Description: Get the description of the OpenML object. + + Input: data_id (int) : The data id + + Returns: The OpenML object. + """ + raise NotImplementedError + + def get_openml_objects(self): + """ + Description: Get the OpenML objects. + + Input: None + + Returns: The OpenML objects. + """ + raise NotImplementedError + + def initialize_cache(self, data_id: Sequence[int]) -> None: + """ + Description: Initialize the cache for the OpenML objects. + + Input: data_id (list) : The list of data ids + + Returns: None + """ + self.get_description(data_id[0]) + + def get_metadata(self, data_id: Sequence[int]): + """ + Description: Get metadata from OpenML using parallel processing. + + Input: data_id (list) : The list of data ids + + Returns: The OpenML objects. + """ + return pqdm( + data_id, self.get_description, n_jobs=self.config["data_download_n_jobs"] + ) + + def process_metadata(self, openml_data_object, data_id: Sequence[int], all_dataset_metadata:pd.DataFrame, file_path: str): + """ + Description: Process the metadata. + + Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, all_dataset_metadata (pd.DataFrame) : The metadata table, file_path (str) : The file path + + Returns: The combined metadata dataframe and the updated metadata table. + """ + raise NotImplementedError + + def load_metadata(self, file_path: str): + """ + Description: Load metadata from a file. + + Input: file_path (str) : The file path + + Returns: The metadata dataframe. + """ + try: + return pd.read_csv(file_path) + except FileNotFoundError: + raise Exception( + "Metadata files do not exist. Please run the training pipeline first." + ) -def get_metadata_from_openml(config, data_id: Sequence[int]): +class OpenMLDatasetHandler(OpenMLObjectHandler): """ - Get metadata from OpenML using parallel processing. + Description: The class for handling OpenML dataset objects. """ - if config["type_of_data"] == "dataset": - return pqdm( - data_id, get_dataset_description, n_jobs=config["data_download_n_jobs"] + + def get_description(self, data_id: int): + return openml.datasets.get_dataset( + dataset_id=data_id, + download_data=False, + download_qualities=True, + download_features_meta_data=True, ) - elif config["type_of_data"] == "flow": - return pqdm( - data_id, get_flow_description, n_jobs=config["data_download_n_jobs"] + + def get_openml_objects(self): + return openml.datasets.list_datasets(output_format="dataframe") + + def process_metadata(self, openml_data_object: Sequence[openml.datasets.dataset.OpenMLDataset], data_id: Sequence[int], all_dataset_metadata: pd.DataFrame, file_path: str): + descriptions = [ + extract_attribute(attr, "description") for attr in openml_data_object + ] + joined_qualities = [ + join_attributes(attr, "qualities") for attr in openml_data_object + ] + joined_features = [join_attributes(attr, "features") for attr in openml_data_object] + + all_data_description_df = create_combined_information_df( + data_id, descriptions, joined_qualities, joined_features + ) + all_dataset_metadata = combine_metadata( + all_dataset_metadata, all_data_description_df ) + all_dataset_metadata.to_csv(file_path) -def get_openml_objects(type_of_data: str): + return ( + all_dataset_metadata[["did", "name", "Combined_information"]], + all_dataset_metadata, + ) + +class OpenMLFlowHandler(OpenMLObjectHandler): """ - Get OpenML objects based on the type of data. + Description: The class for handling OpenML flow objects. """ - if type_of_data == "dataset": - return openml.datasets.list_datasets(output_format="dataframe") - elif type_of_data == "flow": + def get_description(self, data_id: int): + return openml.flows.get_flow(flow_id=data_id) + + def get_openml_objects(self): all_objects = openml.flows.list_flows(output_format="dataframe") return all_objects.rename(columns={"id": "did"}) - else: - raise ValueError("Invalid type_of_data specified") + + def process_metadata(self, openml_data_object: Sequence[openml.flows.flow.OpenMLFlow], data_id: Sequence[int], all_dataset_metadata: pd.DataFrame, file_path: str): + descriptions = [ + extract_attribute(attr, "description") for attr in openml_data_object + ] + names = [extract_attribute(attr, "name") for attr in openml_data_object] + tags = [extract_attribute(attr, "tags") for attr in openml_data_object] + + all_data_description_df = pd.DataFrame( + { + "did": data_id, + "description": descriptions, + "name": names, + "tags": tags, + } + ) + all_data_description_df["Combined_information"] = all_data_description_df.apply( + merge_all_columns_to_string, axis=1 + ) + all_data_description_df.to_csv(file_path) + return ( + all_data_description_df[["did", "name", "Combined_information"]], + all_data_description_df, + ) + # install the package oslo.concurrency to ensure thread safety # def get_all_metadata_from_openml(config) -> Tuple[pd.DataFrame, Sequence[int], pd.DataFrame]: def get_all_metadata_from_openml(config: dict) -> Tuple[pd.DataFrame, Sequence[int], pd.DataFrame] | None: @@ -132,7 +214,9 @@ def get_all_metadata_from_openml(config: dict) -> Tuple[pd.DataFrame, Sequence[i if config["training"] == True: print("[INFO] Training is set to True.") # Gather all OpenML objects of the type of data - all_objects = get_openml_objects(config["type_of_data"]) + handler = OpenMLDatasetHandler(config) if config["type_of_data"] == "dataset" else OpenMLFlowHandler(config) + + all_objects = handler.get_openml_objects() # subset the data for testing if config["test_subset_2000"] == True: @@ -142,15 +226,15 @@ def get_all_metadata_from_openml(config: dict) -> Tuple[pd.DataFrame, Sequence[i data_id = [int(all_objects.iloc[i]["did"]) for i in range(len(all_objects))] print("[INFO] Initializing cache.") - initialize_cache(config["type_of_data"], data_id) + handler.initialize_cache(data_id) print(f"[INFO] Getting {config['type_of_data']} metadata from OpenML.") - openml_data_object = get_metadata_from_openml(config, data_id) + openml_data_object = handler.get_metadata(data_id) print("[INFO] Saving metadata to file.") save_metadata_to_file((openml_data_object, data_id, all_objects), save_filename) - return openml_data_object, data_id, all_objects + return openml_data_object, data_id, all_objects, handler # -- COMBINE METADATA INTO A SINGLE DATAFRAME -- @@ -240,94 +324,18 @@ def combine_metadata(all_dataset_metadata: pd.DataFrame, all_data_description_df return all_dataset_metadata -def load_metadata(file_path: str) -> pd.DataFrame: - try: - return pd.read_csv(file_path) - except FileNotFoundError: - raise Exception( - "Metadata files do not exist. Please run the training pipeline first." - ) - - -def process_dataset_metadata( - openml_data_object: Sequence[openml.datasets.dataset.OpenMLDataset], data_id: Sequence[int], all_dataset_metadata: pd.DataFrame, file_path: str -) -> Tuple[pd.DataFrame, pd.DataFrame]: - """ - Description: Process the dataset metadata. - - Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, all_dataset_metadata (pd.DataFrame) : The metadata table, file_path (str) : The file path - - Returns: The combined metadata dataframe and the updated metadata table. - """ - descriptions = [ - extract_attribute(attr, "description") for attr in openml_data_object - ] - joined_qualities = [ - join_attributes(attr, "qualities") for attr in openml_data_object - ] - joined_features = [join_attributes(attr, "features") for attr in openml_data_object] - - all_data_description_df = create_combined_information_df( - data_id, descriptions, joined_qualities, joined_features - ) - all_dataset_metadata = combine_metadata( - all_dataset_metadata, all_data_description_df - ) - - all_dataset_metadata.to_csv(file_path) - - return ( - all_dataset_metadata[["did", "name", "Combined_information"]], - all_dataset_metadata, - ) - - -# def process_flow_metadata(openml_data_object, data_id, file_path): -def process_flow_metadata(openml_data_object: Sequence[openml.flows.flow.OpenMLFlow], data_id: Sequence[int], file_path: str) -> Tuple[pd.DataFrame, pd.DataFrame]: - """ - Description: Process the flow metadata. - - Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, file_path (str) : The file path - - Returns: The combined metadata dataframe and the updated metadata table. - """ - descriptions = [ - extract_attribute(attr, "description") for attr in openml_data_object - ] - names = [extract_attribute(attr, "name") for attr in openml_data_object] - tags = [extract_attribute(attr, "tags") for attr in openml_data_object] - - all_data_description_df = pd.DataFrame( - { - "did": data_id, - "description": descriptions, - "name": names, - "tags": tags, - } - ) - - all_data_description_df["Combined_information"] = all_data_description_df.apply( - merge_all_columns_to_string, axis=1 - ) - all_data_description_df.to_csv(file_path) - - return ( - all_data_description_df[["did", "name", "Combined_information"]], - all_data_description_df, - ) - - def create_metadata_dataframe( # openml_data_object, data_id, all_dataset_metadata, config - openml_data_object: Sequence[Union[openml.datasets.dataset.OpenMLDataset, openml.flows.flow.OpenMLFlow]], data_id: Sequence[int], all_dataset_metadata: pd.DataFrame, config: dict + handler: OpenMLObjectHandler, openml_data_object: Sequence[Union[openml.datasets.dataset.OpenMLDataset, openml.flows.flow.OpenMLFlow]], data_id: Sequence[int], all_dataset_metadata: pd.DataFrame, config: dict ) -> Tuple[pd.DataFrame, pd.DataFrame]: """ - Creates a dataframe with all the metadata, joined columns with all information + Description: Creates a dataframe with all the metadata, joined columns with all information for the type of data specified in the config. If training is set to False, the dataframes are loaded from the files. If training is set to True, the dataframes are created and then saved to the files. - Args: + Input: + handler (OpenMLObjectHandler): The handler for the OpenML objects. openml_data_object (list): The list of OpenML objects. data_id (list): The list of data ids. all_dataset_metadata (pd.DataFrame): The metadata table. @@ -343,14 +351,6 @@ def create_metadata_dataframe( ) if not config["training"]: - return load_metadata(file_path), all_dataset_metadata - - if config["type_of_data"] == "dataset": - return process_dataset_metadata( - openml_data_object, data_id, all_dataset_metadata, file_path - ) - - if config["type_of_data"] == "flow": - return process_flow_metadata(openml_data_object, data_id, file_path) - - raise ValueError(f"Unsupported type_of_data: {config['type_of_data']}") + return handler.load_metadata(file_path), all_dataset_metadata + + return handler.process_metadata(openml_data_object, data_id, all_dataset_metadata, file_path) diff --git a/docs/developer tutorials/run multiple queries and aggregate.ipynb b/docs/developer tutorials/run multiple queries and aggregate.ipynb index ce895a6..e8ea3a6 100644 --- a/docs/developer tutorials/run multiple queries and aggregate.ipynb +++ b/docs/developer tutorials/run multiple queries and aggregate.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -29,18 +29,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[INFO] Finding device.\n", - "[INFO] Device found: cpu\n" - ] - } - ], + "outputs": [], "source": [ "# Config and DB\n", "\n", @@ -52,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -62,33 +53,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[INFO] Loading metadata from file.\n", - "[INFO] Loading model...\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/eragon/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[INFO] Model loaded.\n" - ] - } - ], + "outputs": [], "source": [ "# Setup llm chain, initialize the retriever and llm, and setup Retrieval QA\n", "qa_dataset = setup_vector_db_and_qa(config=config, data_type=\"dataset\", client=client)" @@ -103,122 +70,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 0%| | 0/5 [00:00\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamequery
3643495COVID-19-Mexico-Clean--Order-by-States4
5243844Coronavirus-Worldwide-Dataset4
2643349COVID-19-World-Vaccination-Progress4
2743365Covid-19-Case-Surveillance-Public-Use-Dataset4
2843367COVID-19-Indonesia-Dataset4
\n", - "" - ], - "text/plain": [ - " id name query\n", - "36 43495 COVID-19-Mexico-Clean--Order-by-States 4\n", - "52 43844 Coronavirus-Worldwide-Dataset 4\n", - "26 43349 COVID-19-World-Vaccination-Progress 4\n", - "27 43365 Covid-19-Case-Surveillance-Public-Use-Dataset 4\n", - "28 43367 COVID-19-Indonesia-Dataset 4" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "combined_df.head()" ] @@ -317,122 +96,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 0%| | 0/5 [00:00\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamequery
043410Coronavirus-Disease-(COVID-19)Find datasets related to COVID-19
143412COVID-19-Visualisation-and-Epidemic-Analysis-DataFind datasets related to COVID-19
243365Covid-19-Case-Surveillance-Public-Use-DatasetFind datasets related to COVID-19
343367COVID-19-Indonesia-DatasetFind datasets related to COVID-19
443684COVID-19-Stats-and-Mobility-TrendsFind datasets related to COVID-19
\n", - "" - ], - "text/plain": [ - " id name \\\n", - "0 43410 Coronavirus-Disease-(COVID-19) \n", - "1 43412 COVID-19-Visualisation-and-Epidemic-Analysis-Data \n", - "2 43365 Covid-19-Case-Surveillance-Public-Use-Dataset \n", - "3 43367 COVID-19-Indonesia-Dataset \n", - "4 43684 COVID-19-Stats-and-Mobility-Trends \n", - "\n", - " query \n", - "0 Find datasets related to COVID-19 \n", - "1 Find datasets related to COVID-19 \n", - "2 Find datasets related to COVID-19 \n", - "3 Find datasets related to COVID-19 \n", - "4 Find datasets related to COVID-19 " - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n", - "\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n", - "\u001b[1;31mClick here for more info. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "combined_df.head()" ] diff --git a/docs/developer tutorials/train and evaluate models.ipynb b/docs/developer tutorials/train and evaluate models.ipynb index d540bdc..e37909c 100644 --- a/docs/developer tutorials/train and evaluate models.ipynb +++ b/docs/developer tutorials/train and evaluate models.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -48,18 +48,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[INFO] Finding device.\n", - "[INFO] Device found: mps\n" - ] - } - ], + "outputs": [], "source": [ "new_path = Path(\"../../backend/\")\n", "\n", @@ -69,15 +60,6 @@ "config[\"training\"] = True" ] }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "config[\"device\"] = \"cpu\" # for testing" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -89,7 +71,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -99,7 +81,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -134,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -151,45 +133,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Waiting for Ollama server to be active...\n", - "NAME \tID \tSIZE \tMODIFIED \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Error: listen tcp 127.0.0.1:11434: bind: address already in use\n", - "\u001b[?25lpulling manifest ⠋ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠙ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠹ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠸ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠼ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠴ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest \n", - "pulling 405b56374e02... 100% ▕████████████████▏ 934 MB \n", - "pulling 62fbfd9ed093... 100% ▕████████████████▏ 182 B \n", - "pulling c156170b718e... 100% ▕████████████████▏ 11 KB \n", - "pulling f02dd72bb242... 100% ▕████████████████▏ 59 B \n", - "pulling c9f5e9ffbc5f... 100% ▕████████████████▏ 485 B \n", - "verifying sha256 digest \n", - "writing manifest \n", - "removing any unused layers \n", - "success \u001b[?25h\n", - "\u001b[?25lpulling manifest ⠋ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠙ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠹ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠸ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest ⠼ \u001b[?25h\u001b[?25l\u001b[2K\u001b[1Gpulling manifest \n", - "pulling b26e6713dc74... 100% ▕████████████████▏ 2.4 GB \n", - "pulling fa8235e5b48f... 100% ▕████████████████▏ 1.1 KB \n", - "pulling 542b217f179c... 100% ▕████████████████▏ 148 B \n", - "pulling 8dde1baf1db0... 100% ▕████████████████▏ 78 B \n", - "pulling f91db7a2deb9... 100% ▕████████████████▏ 485 B \n", - "verifying sha256 digest \n", - "writing manifest \n", - "removing any unused layers \n", - "success \u001b[?25h\n" - ] - } - ], + "outputs": [], "source": [ "# download the ollama llm models\n", "\n", @@ -218,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -228,390 +174,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Embedding Models: 0%| | 0/1 [00:00 27\u001b[0m qa_dataset \u001b[38;5;241m=\u001b[39m \u001b[43msetup_vector_db_and_qa\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 28\u001b[0m \u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconfig\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconfig\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtype_of_data\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mclient\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mclient\u001b[49m\n\u001b[1;32m 29\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;66;03m# Run an evaluation by aggregating multiple queries and counting the results\u001b[39;00m\n\u001b[1;32m 32\u001b[0m \u001b[38;5;66;03m# TODO : Replace this evaluation with a more meaningful one\u001b[39;00m\n\u001b[1;32m 33\u001b[0m combined_df \u001b[38;5;241m=\u001b[39m aggregate_multiple_queries_and_count(queries,qa_dataset\u001b[38;5;241m=\u001b[39mqa_dataset, config\u001b[38;5;241m=\u001b[39mconfig, group_cols \u001b[38;5;241m=\u001b[39m [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mid\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m], sort_by\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquery\u001b[39m\u001b[38;5;124m\"\u001b[39m, count \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m)\n", - "File \u001b[0;32m~/Documents/CODE/Github/ai_search/docs/developer tutorials/../../backend/modules/llm.py:268\u001b[0m, in \u001b[0;36msetup_vector_db_and_qa\u001b[0;34m(config, data_type, client)\u001b[0m\n\u001b[1;32m 264\u001b[0m metadata_df, all_metadata \u001b[38;5;241m=\u001b[39m create_metadata_dataframe(\n\u001b[1;32m 265\u001b[0m openml_data_object, data_id, all_metadata, config\u001b[38;5;241m=\u001b[39mconfig\n\u001b[1;32m 266\u001b[0m )\n\u001b[1;32m 267\u001b[0m \u001b[38;5;66;03m# Create the vector store\u001b[39;00m\n\u001b[0;32m--> 268\u001b[0m vectordb \u001b[38;5;241m=\u001b[39m \u001b[43mload_document_and_create_vector_store\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 269\u001b[0m \u001b[43m \u001b[49m\u001b[43mmetadata_df\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconfig\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchroma_client\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mclient\u001b[49m\n\u001b[1;32m 270\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 271\u001b[0m \u001b[38;5;66;03m# Initialize the LLM chain and setup Retrieval QA\u001b[39;00m\n\u001b[1;32m 272\u001b[0m qa \u001b[38;5;241m=\u001b[39m initialize_llm_chain(vectordb\u001b[38;5;241m=\u001b[39mvectordb, config\u001b[38;5;241m=\u001b[39mconfig)\n", - "File \u001b[0;32m~/Documents/CODE/Github/ai_search/docs/developer tutorials/../../backend/modules/llm.py:107\u001b[0m, in \u001b[0;36mload_document_and_create_vector_store\u001b[0;34m(metadata_df, chroma_client, config)\u001b[0m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m config[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtraining\u001b[39m\u001b[38;5;124m\"\u001b[39m]:\n\u001b[1;32m 105\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m load_vector_store(chroma_client, config, embeddings, collection_name)\n\u001b[0;32m--> 107\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcreate_vector_store\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 108\u001b[0m \u001b[43m \u001b[49m\u001b[43mmetadata_df\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchroma_client\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43membeddings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcollection_name\u001b[49m\n\u001b[1;32m 109\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/Documents/CODE/Github/ai_search/docs/developer tutorials/../../backend/modules/llm.py:222\u001b[0m, in \u001b[0;36mcreate_vector_store\u001b[0;34m(metadata_df, chroma_client, config, embeddings, collection_name)\u001b[0m\n\u001b[1;32m 219\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m db\n\u001b[1;32m 220\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 221\u001b[0m \u001b[38;5;66;03m# db.add_documents(unique_docs, ids=unique_ids)\u001b[39;00m\n\u001b[0;32m--> 222\u001b[0m \u001b[43madd_documents_to_db\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdb\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43munique_docs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43munique_ids\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 224\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m db\n", - "File \u001b[0;32m~/Documents/CODE/Github/ai_search/docs/developer tutorials/../../backend/modules/llm.py:180\u001b[0m, in \u001b[0;36madd_documents_to_db\u001b[0;34m(db, unique_docs, unique_ids)\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 179\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m tqdm(\u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m0\u001b[39m, \u001b[38;5;28mlen\u001b[39m(unique_docs), bs)):\n\u001b[0;32m--> 180\u001b[0m \u001b[43mdb\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43madd_documents\u001b[49m\u001b[43m(\u001b[49m\u001b[43munique_docs\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mbs\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mids\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43munique_ids\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mbs\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/langchain_core/vectorstores.py:147\u001b[0m, in \u001b[0;36mVectorStore.add_documents\u001b[0;34m(self, documents, **kwargs)\u001b[0m\n\u001b[1;32m 145\u001b[0m texts \u001b[38;5;241m=\u001b[39m [doc\u001b[38;5;241m.\u001b[39mpage_content \u001b[38;5;28;01mfor\u001b[39;00m doc \u001b[38;5;129;01min\u001b[39;00m documents]\n\u001b[1;32m 146\u001b[0m metadatas \u001b[38;5;241m=\u001b[39m [doc\u001b[38;5;241m.\u001b[39mmetadata \u001b[38;5;28;01mfor\u001b[39;00m doc \u001b[38;5;129;01min\u001b[39;00m documents]\n\u001b[0;32m--> 147\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43madd_texts\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtexts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmetadatas\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/langchain_community/vectorstores/chroma.py:276\u001b[0m, in \u001b[0;36mChroma.add_texts\u001b[0;34m(self, texts, metadatas, ids, **kwargs)\u001b[0m\n\u001b[1;32m 274\u001b[0m texts \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(texts)\n\u001b[1;32m 275\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_embedding_function \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 276\u001b[0m embeddings \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_embedding_function\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43membed_documents\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtexts\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m metadatas:\n\u001b[1;32m 278\u001b[0m \u001b[38;5;66;03m# fill metadatas with empty dicts if somebody\u001b[39;00m\n\u001b[1;32m 279\u001b[0m \u001b[38;5;66;03m# did not specify metadata for all texts\u001b[39;00m\n\u001b[1;32m 280\u001b[0m length_diff \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(texts) \u001b[38;5;241m-\u001b[39m \u001b[38;5;28mlen\u001b[39m(metadatas)\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/langchain_community/embeddings/huggingface.py:98\u001b[0m, in \u001b[0;36mHuggingFaceEmbeddings.embed_documents\u001b[0;34m(self, texts)\u001b[0m\n\u001b[1;32m 96\u001b[0m sentence_transformers\u001b[38;5;241m.\u001b[39mSentenceTransformer\u001b[38;5;241m.\u001b[39mstop_multi_process_pool(pool)\n\u001b[1;32m 97\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m---> 98\u001b[0m embeddings \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mclient\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencode\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 99\u001b[0m \u001b[43m \u001b[49m\u001b[43mtexts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mshow_progress_bar\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshow_progress\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencode_kwargs\u001b[49m\n\u001b[1;32m 100\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m embeddings\u001b[38;5;241m.\u001b[39mtolist()\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/sentence_transformers/SentenceTransformer.py:371\u001b[0m, in \u001b[0;36mSentenceTransformer.encode\u001b[0;34m(self, sentences, prompt_name, prompt, batch_size, show_progress_bar, output_value, precision, convert_to_numpy, convert_to_tensor, device, normalize_embeddings)\u001b[0m\n\u001b[1;32m 368\u001b[0m features\u001b[38;5;241m.\u001b[39mupdate(extra_features)\n\u001b[1;32m 370\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m torch\u001b[38;5;241m.\u001b[39mno_grad():\n\u001b[0;32m--> 371\u001b[0m out_features \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mforward\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfeatures\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 372\u001b[0m out_features[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msentence_embedding\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m truncate_embeddings(\n\u001b[1;32m 373\u001b[0m out_features[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msentence_embedding\u001b[39m\u001b[38;5;124m\"\u001b[39m], \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtruncate_dim\n\u001b[1;32m 374\u001b[0m )\n\u001b[1;32m 376\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m output_value \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtoken_embeddings\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/container.py:217\u001b[0m, in \u001b[0;36mSequential.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m):\n\u001b[1;32m 216\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m:\n\u001b[0;32m--> 217\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mmodule\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 218\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28minput\u001b[39m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/sentence_transformers/models/Transformer.py:98\u001b[0m, in \u001b[0;36mTransformer.forward\u001b[0;34m(self, features)\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtoken_type_ids\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m features:\n\u001b[1;32m 96\u001b[0m trans_features[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtoken_type_ids\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m features[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtoken_type_ids\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m---> 98\u001b[0m output_states \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mauto_model\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mtrans_features\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreturn_dict\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 99\u001b[0m output_tokens \u001b[38;5;241m=\u001b[39m output_states[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 101\u001b[0m features\u001b[38;5;241m.\u001b[39mupdate({\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtoken_embeddings\u001b[39m\u001b[38;5;124m\"\u001b[39m: output_tokens, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mattention_mask\u001b[39m\u001b[38;5;124m\"\u001b[39m: features[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mattention_mask\u001b[39m\u001b[38;5;124m\"\u001b[39m]})\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/models/bert/modeling_bert.py:1137\u001b[0m, in \u001b[0;36mBertModel.forward\u001b[0;34m(self, input_ids, attention_mask, token_type_ids, position_ids, head_mask, inputs_embeds, encoder_hidden_states, encoder_attention_mask, past_key_values, use_cache, output_attentions, output_hidden_states, return_dict)\u001b[0m\n\u001b[1;32m 1130\u001b[0m \u001b[38;5;66;03m# Prepare head mask if needed\u001b[39;00m\n\u001b[1;32m 1131\u001b[0m \u001b[38;5;66;03m# 1.0 in head_mask indicate we keep the head\u001b[39;00m\n\u001b[1;32m 1132\u001b[0m \u001b[38;5;66;03m# attention_probs has shape bsz x n_heads x N x N\u001b[39;00m\n\u001b[1;32m 1133\u001b[0m \u001b[38;5;66;03m# input head_mask has shape [num_heads] or [num_hidden_layers x num_heads]\u001b[39;00m\n\u001b[1;32m 1134\u001b[0m \u001b[38;5;66;03m# and head_mask is converted to shape [num_hidden_layers x batch x num_heads x seq_length x seq_length]\u001b[39;00m\n\u001b[1;32m 1135\u001b[0m head_mask \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_head_mask(head_mask, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconfig\u001b[38;5;241m.\u001b[39mnum_hidden_layers)\n\u001b[0;32m-> 1137\u001b[0m encoder_outputs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencoder\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1138\u001b[0m \u001b[43m \u001b[49m\u001b[43membedding_output\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1139\u001b[0m \u001b[43m \u001b[49m\u001b[43mattention_mask\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mextended_attention_mask\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1140\u001b[0m \u001b[43m \u001b[49m\u001b[43mhead_mask\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhead_mask\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1141\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoder_hidden_states\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mencoder_hidden_states\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1142\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoder_attention_mask\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mencoder_extended_attention_mask\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1143\u001b[0m \u001b[43m \u001b[49m\u001b[43mpast_key_values\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpast_key_values\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1144\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_cache\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_cache\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1145\u001b[0m \u001b[43m \u001b[49m\u001b[43moutput_attentions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moutput_attentions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1146\u001b[0m \u001b[43m \u001b[49m\u001b[43moutput_hidden_states\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moutput_hidden_states\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1147\u001b[0m \u001b[43m \u001b[49m\u001b[43mreturn_dict\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreturn_dict\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1148\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1149\u001b[0m sequence_output \u001b[38;5;241m=\u001b[39m encoder_outputs[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 1150\u001b[0m pooled_output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpooler(sequence_output) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpooler \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/models/bert/modeling_bert.py:690\u001b[0m, in \u001b[0;36mBertEncoder.forward\u001b[0;34m(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_values, use_cache, output_attentions, output_hidden_states, return_dict)\u001b[0m\n\u001b[1;32m 679\u001b[0m layer_outputs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_gradient_checkpointing_func(\n\u001b[1;32m 680\u001b[0m layer_module\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__call__\u001b[39m,\n\u001b[1;32m 681\u001b[0m hidden_states,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 687\u001b[0m output_attentions,\n\u001b[1;32m 688\u001b[0m )\n\u001b[1;32m 689\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 690\u001b[0m layer_outputs \u001b[38;5;241m=\u001b[39m \u001b[43mlayer_module\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 691\u001b[0m \u001b[43m \u001b[49m\u001b[43mhidden_states\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 692\u001b[0m \u001b[43m \u001b[49m\u001b[43mattention_mask\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 693\u001b[0m \u001b[43m \u001b[49m\u001b[43mlayer_head_mask\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 694\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoder_hidden_states\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 695\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoder_attention_mask\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 696\u001b[0m \u001b[43m \u001b[49m\u001b[43mpast_key_value\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 697\u001b[0m \u001b[43m \u001b[49m\u001b[43moutput_attentions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 698\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 700\u001b[0m hidden_states \u001b[38;5;241m=\u001b[39m layer_outputs[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 701\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m use_cache:\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/models/bert/modeling_bert.py:622\u001b[0m, in \u001b[0;36mBertLayer.forward\u001b[0;34m(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_value, output_attentions)\u001b[0m\n\u001b[1;32m 619\u001b[0m cross_attn_present_key_value \u001b[38;5;241m=\u001b[39m cross_attention_outputs[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\n\u001b[1;32m 620\u001b[0m present_key_value \u001b[38;5;241m=\u001b[39m present_key_value \u001b[38;5;241m+\u001b[39m cross_attn_present_key_value\n\u001b[0;32m--> 622\u001b[0m layer_output \u001b[38;5;241m=\u001b[39m \u001b[43mapply_chunking_to_forward\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 623\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfeed_forward_chunk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mchunk_size_feed_forward\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mseq_len_dim\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mattention_output\u001b[49m\n\u001b[1;32m 624\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 625\u001b[0m outputs \u001b[38;5;241m=\u001b[39m (layer_output,) \u001b[38;5;241m+\u001b[39m outputs\n\u001b[1;32m 627\u001b[0m \u001b[38;5;66;03m# if decoder, return the attn key/values as the last output\u001b[39;00m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/pytorch_utils.py:238\u001b[0m, in \u001b[0;36mapply_chunking_to_forward\u001b[0;34m(forward_fn, chunk_size, chunk_dim, *input_tensors)\u001b[0m\n\u001b[1;32m 235\u001b[0m \u001b[38;5;66;03m# concatenate output at same dimension\u001b[39;00m\n\u001b[1;32m 236\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m torch\u001b[38;5;241m.\u001b[39mcat(output_chunks, dim\u001b[38;5;241m=\u001b[39mchunk_dim)\n\u001b[0;32m--> 238\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43minput_tensors\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/models/bert/modeling_bert.py:635\u001b[0m, in \u001b[0;36mBertLayer.feed_forward_chunk\u001b[0;34m(self, attention_output)\u001b[0m\n\u001b[1;32m 633\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfeed_forward_chunk\u001b[39m(\u001b[38;5;28mself\u001b[39m, attention_output):\n\u001b[1;32m 634\u001b[0m intermediate_output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mintermediate(attention_output)\n\u001b[0;32m--> 635\u001b[0m layer_output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moutput\u001b[49m\u001b[43m(\u001b[49m\u001b[43mintermediate_output\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mattention_output\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 636\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m layer_output\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/models/bert/modeling_bert.py:547\u001b[0m, in \u001b[0;36mBertOutput.forward\u001b[0;34m(self, hidden_states, input_tensor)\u001b[0m\n\u001b[1;32m 546\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, hidden_states: torch\u001b[38;5;241m.\u001b[39mTensor, input_tensor: torch\u001b[38;5;241m.\u001b[39mTensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m torch\u001b[38;5;241m.\u001b[39mTensor:\n\u001b[0;32m--> 547\u001b[0m hidden_states \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdense\u001b[49m\u001b[43m(\u001b[49m\u001b[43mhidden_states\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 548\u001b[0m hidden_states \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdropout(hidden_states)\n\u001b[1;32m 549\u001b[0m hidden_states \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mLayerNorm(hidden_states \u001b[38;5;241m+\u001b[39m input_tensor)\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/linear.py:116\u001b[0m, in \u001b[0;36mLinear.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[0;32m--> 116\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlinear\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbias\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "for embedding_model in tqdm(list_of_embedding_models, desc=\"Embedding Models\", total=len(list_of_embedding_models)):\n", " for llm_model in tqdm(list_of_llm_models, desc=\"LLM Models\", total=len(list_of_llm_models)):\n", @@ -649,6 +214,13 @@ "\n", " combined_df.to_csv(experiment_path / \"results.csv\")" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/docs/images/search_ui.png b/docs/images/search_ui.png new file mode 100644 index 0000000000000000000000000000000000000000..b4b0ca0dd8ce33c9c7c6aae77f325abe43f1b2fe GIT binary patch literal 473495 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

Ak4x;Yvnd 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%0DdF4cfydm1 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 - Index + Developer Tutorials @@ -464,6 +464,27 @@ + + + + + + +
  • + + + + + Train and evaluate models + + + + +
  • + + + + diff --git a/site/configuration/index.html b/site/configuration/index.html index fafe9f5..350b112 100644 --- a/site/configuration/index.html +++ b/site/configuration/index.html @@ -368,7 +368,7 @@ - Index + Developer Tutorials @@ -483,6 +483,27 @@ + + + + + + +
  • + + + + + Train and evaluate models + + + + +
  • + + + + diff --git a/site/developer tutorials/change model/index.html b/site/developer tutorials/change model/index.html index 06ca00c..4562281 100644 --- a/site/developer tutorials/change model/index.html +++ b/site/developer tutorials/change model/index.html @@ -70,7 +70,7 @@
    - + Skip to content @@ -360,7 +360,7 @@ - Index + Developer Tutorials @@ -383,6 +383,8 @@ + +
    + +
    +
    +
    +

    Initial config

    +
    @@ -893,7 +937,7 @@

    LLM model

    IMPORTANT

      -
    • Do NOT forget to add the models to ollama/get_ollama.sh
    • +
    • Do NOT forget to change the model to the best model in ollama/get_ollama.sh

    diff --git a/site/developer tutorials/create vectordb/index.html b/site/developer tutorials/create vectordb/index.html index 926ed8b..9a8bb36 100644 --- a/site/developer tutorials/create vectordb/index.html +++ b/site/developer tutorials/create vectordb/index.html @@ -70,7 +70,7 @@
    - + Skip to content @@ -360,7 +360,7 @@ - Index + Developer Tutorials @@ -404,6 +404,8 @@ + +
    Ak4x;Yvnd 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%0DdF4cfydm1 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 + + +
  • + + + Example usage + + +
  • @@ -447,7 +456,7 @@ - Index + Developer Tutorials @@ -562,6 +571,27 @@ + + + + + + +
  • + + + + + Train and evaluate models + + + + +
  • + + + + @@ -728,6 +758,15 @@ + + +
  • + + + Example usage + + +
  • @@ -790,23 +829,29 @@

    RAG pipeline for OpenML

    • This repository contains the code for the RAG pipeline for OpenML.
    • +
    • Project roadmap

    Getting started

      -
    • A docker image will be provided at a later date for easier setup
    • Clone the repository
    • Create a virtual environment and activate it
    • Install the requirements using pip install -r requirements.txt
    • Run training.py (for the first time/to update the model). This takes care of basically everything. (Refer to the training section for more details)
    • +
    • Install Ollama (https://ollama.com/) for your machine
    -
    • For a local setup, you can run ./start_local.sh to start Olama, FastAPI and Streamlit servers. The Streamlit server will be available at http://localhost:8501
    • For docker, refer to Docker
    • +
    • For a complete usage example refer to pipeline usage
    • Enjoy :)
    +

    Example usage

    +
      +
    • Note that in this picture, I am using a very very tiny model for demonstration purposes. The actual results would be a lot better :)
    • +
    • Example usage
    • +

    Where do I go from here?

    I am a developer and I want to contribute to the project

      diff --git a/site/inference/index.html b/site/inference/index.html index faf7d42..b9a8ed1 100644 --- a/site/inference/index.html +++ b/site/inference/index.html @@ -416,7 +416,7 @@ - Index + Developer Tutorials @@ -531,6 +531,27 @@ + + + + + + +
    • + + + + + Train and evaluate models + + + + +
    • + + + +
    diff --git a/site/modules/general_utils/index.html b/site/modules/general_utils/index.html index 7ed2fb6..58ebdfd 100644 --- a/site/modules/general_utils/index.html +++ b/site/modules/general_utils/index.html @@ -9,7 +9,7 @@ - + @@ -358,7 +358,7 @@ - Index + Developer Tutorials @@ -473,6 +473,27 @@ + + + + + + +
  • + + + + + Train and evaluate models + + + + +
  • + + + + diff --git a/site/modules/llm_module/index.html b/site/modules/llm_module/index.html index 50d6f71..fec1dc6 100644 --- a/site/modules/llm_module/index.html +++ b/site/modules/llm_module/index.html @@ -358,7 +358,7 @@ - Index + Developer Tutorials @@ -473,6 +473,27 @@ + + + + + + +
  • + + + + + Train and evaluate models + + + + +
  • + + + + @@ -1049,8 +1070,8 @@

    if config["testing_flag"]: # subset the data for testing if config["test_subset_2000"] == True: - print("[INFO] Subsetting the data to 2000 rows.") - documents = documents[:2000] + print("[INFO] Subsetting the data to 100 rows.") + documents = documents[:100] unique_docs, unique_ids = generate_unique_documents(documents, db) print( diff --git a/site/modules/metadata_module/index.html b/site/modules/metadata_module/index.html index 24b944a..2a19b5d 100644 --- a/site/modules/metadata_module/index.html +++ b/site/modules/metadata_module/index.html @@ -358,7 +358,7 @@ - Index + Developer Tutorials @@ -473,6 +473,27 @@ + + + + + + +
  • + + + + + Train and evaluate models + + + + +
  • + + + + @@ -1485,8 +1506,8 @@

    # subset the data for testing if config["test_subset_2000"] == True: - print("[INFO] Subsetting the data to 2000 rows.") - all_objects = all_objects[:2000] + print("[INFO] Subsetting the data to 100 rows.") + all_objects = all_objects[:100] data_id = [int(all_objects.iloc[i]["did"]) for i in range(len(all_objects))] diff --git a/site/modules/result_gen/index.html b/site/modules/result_gen/index.html index ca9a36b..4c451f0 100644 --- a/site/modules/result_gen/index.html +++ b/site/modules/result_gen/index.html @@ -356,7 +356,7 @@ - Index + Developer Tutorials @@ -471,6 +471,27 @@ + + + + + + +
  • + + + + + Train and evaluate models + + + + +
  • + + + + diff --git a/site/search/search_index.json b/site/search/search_index.json index eb37926..82c1267 100644 --- a/site/search/search_index.json +++ b/site/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"RAG pipeline for OpenML","text":"
    • This repository contains the code for the RAG pipeline for OpenML.
    "},{"location":"#getting-started","title":"Getting started","text":"
    • A docker image will be provided at a later date for easier setup
    • Clone the repository
    • Create a virtual environment and activate it
    • Install the requirements using pip install -r requirements.txt
    • Run training.py (for the first time/to update the model). This takes care of basically everything. (Refer to the training section for more details)
    • For a local setup, you can run ./start_local.sh to start Olama, FastAPI and Streamlit servers. The Streamlit server will be available at http://localhost:8501
    • For docker, refer to Docker
    • Enjoy :)
    "},{"location":"#where-do-i-go-from-here","title":"Where do I go from here?","text":""},{"location":"#i-am-a-developer-and-i-want-to-contribute-to-the-project","title":"I am a developer and I want to contribute to the project","text":"
    • Hello! We are glad you are here. To get started, refer to the tutorials in the developer tutorial section.
    • If you have any questions, feel free to ask or post an issue.
    "},{"location":"#i-just-want-to-use-the-pipeline","title":"I just want to use the pipeline","text":"
    • You can use the pipeline by running the Streamlit frontend. Refer to the getting started section above for more details.
    "},{"location":"#i-am-on-the-wrong-page","title":"I am on the wrong page","text":""},{"location":"configuration/","title":"Configuration","text":"
    • The main config file is config.json
    • Possible options are as follows:
    • rqa_prompt_template: The template for the RAG pipeline search prompt. This is used by the model to query the database.
    • llm_prompt_template: The template for the summary generator LLM prompt.
    • num_return_documents: Number of documents to return for a query. Too high a number can lead to Out of Memory errors. (Defaults to 50)
    • embedding_model: The model to use for generating embeddings. This is used to generate embeddings for the documents as a means of comparison using the LLM's embeddings. (Defaults to BAAI/bge-large-en-v1.5)
      • Other possible tested models
        • BAAI/bge-base-en-v1.5
        • BAAI/bge-large-en-v1.5
        • WhereIsAI/UAE-Large-V1
    • llm_model: The model used for generating the result summary. (Defaults to qwen2:1.5b)
    • data_dir: The directory to store the intermediate data like tables/databases etc. (Defaults to ./data/)
    • persist_dir: The directory to store the cached data. Defaults to ./data/chroma_db/ and stores the embeddings for the documents with a unique hash. (Defaults to ./data/chroma_db/)
    • testing_flag: Enables testing mode by using subsets of the data for quick debugging. This is used to test the pipeline and is not recommended for normal use. (Defaults to False)
    • data_download_n_jobs: Number of jobs to run in parallel for downloading data. (Defaults to 20)
    • training: Whether to train the model or not. (Defaults to False) this is automatically set to True when when running the training.py script. Do NOT set this to True manually.
    • search_type : The type of vector comparison to use. (Defaults to \"similarity\")
    • reraanking: Whether to rerank the results using the FlashRank algorithm. (Defaults to False)
    • long_context_reordering: Whether to reorder the results using the Long Context Reordering algorithm. (Defaults to False)
    "},{"location":"docker/","title":"Docker container","text":""},{"location":"docker/#building","title":"Building","text":"
    • Run docker compose build --progress=plain
    "},{"location":"docker/#running","title":"Running","text":"
    • Run ./start_docker.sh
    • This uses the docker compose file to run the docker process in the background.
    • The required LLM model is also pulled from the docker hub and the container is started.
    "},{"location":"docker/#stopping","title":"Stopping","text":"
    • Run ./stop_docker.sh
    "},{"location":"docker/#potential-errors","title":"Potential Errors","text":"
    • Permission errors : Run chmod +x *.sh
    • If you get a memory error you can run docker system prune. Please be careful with this command as it will remove all stopped containers, all dangling images, and all unused networks. So ensure you have no important data in any of the containers before running this command.
    • On docker desktop for Mac, increase memory limits to as much as your system can handle.
    "},{"location":"inference/","title":"Inference","text":"
    • Just run ./start_local.sh and it will take care of everything.
    • The UI should either pop up or you can navigate to http://localhost:8501/ in your browser.
    • Note that it takes a decent bit of time to load everything. (Approximately 10-15 mins on a decent Macbook Pro, and much slower with Docker)
    "},{"location":"inference/#stopping","title":"Stopping","text":"
    • Run ./stop_local.sh
    • ./start_local.sh stores the PIDs of all the processes it starts in files in all the directories it starts them in. stop_local.sh reads these files and kills the processes.
    "},{"location":"inference/#errors","title":"Errors","text":"
    • If you get an error about file permissions, run chmod +x start_local.sh and chmod +x stop_local.sh to make them executable.
    "},{"location":"testing/","title":"Testing","text":""},{"location":"testing/#unit-testing","title":"Unit Testing","text":"
    • Run python -m unittest tests/unit_testing.py to run the unit tests.
    "},{"location":"testing/#load-testing","title":"Load Testing","text":"
    • Load testing can be done using Locust, a load testing tool that allows you to simulate users querying the API and measure the performance of the API under load from numerous users.
    • It is possible to configure the number of users, the hatch rate, and the time to run the test for.
    "},{"location":"testing/#running-the-load-test","title":"Running the load test","text":"
    • Start the FastAPI server using uvicorn main:app (or ./start_local.sh )
    • Load testing using Locust (locust -f tests/locust_test.py --host http://127.0.0.1:8000 ) using a different terminal
    "},{"location":"testing/#all-tests","title":"All tests","text":"

    Bases: TestCase

    Source code in tests/unit_testing.py
    class TestConfig(unittest.TestCase):\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n        self.client = chromadb.PersistentClient(path=config[\"persist_dir\"])\n        self.config_keys = [\"rqa_prompt_template\", \"llm_prompt_template\",\n        \"num_return_documents\", \"embedding_model\", \"llm_model\", \"num_documents_for_llm\", \"data_dir\", \"persist_dir\", \"testing_flag\", \"ignore_downloading_data\", \"test_subset_2000\", \"data_download_n_jobs\", \"training\", \"temperature\", \"top_p\", \"search_type\", \"reranking\", \"long_context_reorder\"]\n        self.query_test_dict = {\n            \"dataset\": \"Find me a dataset about flowers that has a high number of instances.\",\n            \"flow\": \"Find me a flow that uses the RandomForestClassifier.\",\n        }\n    def test_check_data_dirs(self):\n        \"\"\"\n        Description: Check if the data directory exists.\n        Returns: None\n        \"\"\"\n        self.assertTrue(os.path.exists(config[\"data_dir\"]))\n        self.assertTrue(os.path.exists(config[\"persist_dir\"]))\n\n    def test_config(self):\n        \"\"\"\n        Description: Check if the config has the required keys.\n        Returns: None\n        \"\"\"\n        for key in self.config_keys:\n            self.assertIn(key, config.keys())\n\n    def test_setup_vector_db_and_qa(self):\n        \"\"\"\n        Description: Check if the setup_vector_db_and_qa function works as expected.\n        Returns: None\n        \"\"\"\n        for type_of_data in [\"dataset\", \"flow\"]:\n            self.qa = setup_vector_db_and_qa(\n                config=config, data_type=type_of_data, client=self.client\n            )\n            self.assertIsNotNone(self.qa)\n            self.result_data_frame = get_result_from_query(\n                query=self.query_test_dict[type_of_data],\n                qa=self.qa,\n                type_of_query=type_of_data,\n                config=config,\n            )\n            self.assertIsNotNone(self.result_data_frame)\n
    "},{"location":"testing/#unit_testing.TestConfig.test_check_data_dirs","title":"test_check_data_dirs()","text":"

    Description: Check if the data directory exists. Returns: None

    Source code in tests/unit_testing.py
    def test_check_data_dirs(self):\n    \"\"\"\n    Description: Check if the data directory exists.\n    Returns: None\n    \"\"\"\n    self.assertTrue(os.path.exists(config[\"data_dir\"]))\n    self.assertTrue(os.path.exists(config[\"persist_dir\"]))\n
    "},{"location":"testing/#unit_testing.TestConfig.test_config","title":"test_config()","text":"

    Description: Check if the config has the required keys. Returns: None

    Source code in tests/unit_testing.py
    def test_config(self):\n    \"\"\"\n    Description: Check if the config has the required keys.\n    Returns: None\n    \"\"\"\n    for key in self.config_keys:\n        self.assertIn(key, config.keys())\n
    "},{"location":"testing/#unit_testing.TestConfig.test_setup_vector_db_and_qa","title":"test_setup_vector_db_and_qa()","text":"

    Description: Check if the setup_vector_db_and_qa function works as expected. Returns: None

    Source code in tests/unit_testing.py
    def test_setup_vector_db_and_qa(self):\n    \"\"\"\n    Description: Check if the setup_vector_db_and_qa function works as expected.\n    Returns: None\n    \"\"\"\n    for type_of_data in [\"dataset\", \"flow\"]:\n        self.qa = setup_vector_db_and_qa(\n            config=config, data_type=type_of_data, client=self.client\n        )\n        self.assertIsNotNone(self.qa)\n        self.result_data_frame = get_result_from_query(\n            query=self.query_test_dict[type_of_data],\n            qa=self.qa,\n            type_of_query=type_of_data,\n            config=config,\n        )\n        self.assertIsNotNone(self.result_data_frame)\n
    "},{"location":"training/","title":"Training","text":"
    • While we are not creating a new model, we are using the existing model to create embeddings. The name might be misleading but this was chosen as an attempt to keep the naming consistent with other codebases.
    • (Perhaps we might fine tune the model in the future)
    • The training script is present in training.py. Running this script will take care of everything.
    "},{"location":"training/#what-does-the-training-script-do","title":"What does the training script do?","text":"
    • Load the config file and set the necessary variables
    • If testing_flag is set to True, the script will use a subset of the data for quick debugging
    • testing_flag is set to True
    • persist_dir is set to ./data/chroma_db_testing
    • test_subset_2000 is set to True
    • data_dir is set to ./data/testing_data/
    • If testing_flag is set to False, the script will use the entire dataset
    • For all datasets in the OpenML dataset list:
    • Download the dataset
    • Create the vector dataset with computed embeddings
    • Create a vectordb retriever
    • Run some test queries
    "},{"location":"developer%20tutorials/change%20model/","title":"Change model","text":"
    from __future__ import annotations\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\nimport chromadb\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.utils import load_config_and_device\nfrom modules.llm import setup_vector_db_and_qa\n
    config = load_config_and_device(\"../../backend/config.json\")\nconfig[\"persist_dir\"] = \"../backend/data/chroma_db/\"\nconfig[\"data_dir\"] = \"../backend/data/\"\nconfig[\"type_of_data\"] = \"dataset\"\nconfig[\"training\"] = True\n# load the persistent database using ChromaDB\nclient = chromadb.PersistentClient(path=config[\"persist_dir\"])\nprint(config)\n
    \n[INFO] Finding device.\n[INFO] Device found: cpu\n{'rqa_prompt_template': 'This database is a list of metadata. Use the following pieces of context to find the relevant document. Answer only from the context given using the {question} given. If you do not know the answer, say you do not know. {context}', 'llm_prompt_template': 'The following is a set of documents {docs}. Based on these docs, please summarize the content concisely. Also give a list of main concepts found in the documents. Do not add any new information. Helpful Answer: ', 'num_return_documents': 50, 'embedding_model': 'BAAI/bge-large-en-v1.5', 'llm_model': 'qwen2:1.5b', 'num_documents_for_llm': 10, 'data_dir': '../backend/data/', 'persist_dir': '../backend/data/chroma_db/', 'testing_flag': False, 'ignore_downloading_data': False, 'test_subset_2000': False, 'data_download_n_jobs': 20, 'training': True, 'temperature': 0.95, 'top_p': 0.95, 'search_type': 'similarity', 'reranking': False, 'long_context_reorder': False, 'device': 'cpu', 'type_of_data': 'dataset'}\n\n
    config[\"embedding_model\"] = \"HuggingFaceH4/capybara\"\n
    • Pick a model from Ollama - https://ollama.com/library?sort=popular
    • eg : mistral
    config[\"llm_model\"] = \"mistral\"\n
    qa = setup_vector_db_and_qa(\n        config=config, data_type=config[\"type_of_data\"], client=client\n    )\n
    "},{"location":"developer%20tutorials/change%20model/#embedding-model","title":"Embedding model","text":"
    • Pick a model from HF
    "},{"location":"developer%20tutorials/change%20model/#llm-model","title":"LLM model","text":""},{"location":"developer%20tutorials/change%20model/#important","title":"IMPORTANT","text":"
    • Do NOT forget to add the models to ollama/get_ollama.sh
    "},{"location":"developer%20tutorials/create%20vectordb/","title":"Create vectordb","text":"
    from __future__ import annotations\nfrom langchain.globals import set_llm_cache\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\nimport chromadb\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.utils import get_all_metadata_from_openml, create_metadata_dataframe, load_config_and_device\nfrom modules.llm import load_document_and_create_vector_store, setup_vector_db_and_qa\n
    config = load_config_and_device(\"../../backend/config.json\")\nconfig[\"persist_dir\"] = \"../backend/data/chroma_db/\"\nconfig[\"data_dir\"] = \"../backend/data/\"\nconfig[\"type_of_data\"] = \"dataset\"\nconfig[\"training\"] = True\n\n# load the persistent database using ChromaDB\nclient = chromadb.PersistentClient(path=config[\"persist_dir\"])\nprint(config)\n
    \n[INFO] Finding device.\n[INFO] Device found: cpu\n{'rqa_prompt_template': 'This database is a list of metadata. Use the following pieces of context to find the relevant document. Answer only from the context given using the {question} given. If you do not know the answer, say you do not know. {context}', 'llm_prompt_template': 'The following is a set of documents {docs}. Based on these docs, please summarize the content concisely. Also give a list of main concepts found in the documents. Do not add any new information. Helpful Answer: ', 'num_return_documents': 50, 'embedding_model': 'BAAI/bge-large-en-v1.5', 'llm_model': 'qwen2:1.5b', 'num_documents_for_llm': 10, 'data_dir': '../backend/data/', 'persist_dir': '../backend/data/chroma_db/', 'testing_flag': False, 'ignore_downloading_data': False, 'test_subset_2000': False, 'data_download_n_jobs': 20, 'training': True, 'temperature': 0.95, 'top_p': 0.95, 'search_type': 'similarity', 'reranking': False, 'long_context_reorder': False, 'device': 'cpu', 'type_of_data': 'dataset'}\n\n
    # Download the data if it does not exist\nopenml_data_object, data_id, all_metadata = get_all_metadata_from_openml(\n    config=config\n)\n# Create the combined metadata dataframe\nmetadata_df, all_metadata = create_metadata_dataframe(\n    openml_data_object, data_id, all_metadata, config=config\n)\n# Create the vector store\nvectordb = load_document_and_create_vector_store(\n    metadata_df, config=config, chroma_client=client\n)\n
    qa = setup_vector_db_and_qa(\n        config=config, data_type=config[\"type_of_data\"], client=client\n    )\n
    "},{"location":"developer%20tutorials/create%20vectordb/#manually","title":"Manually","text":""},{"location":"developer%20tutorials/create%20vectordb/#api","title":"API","text":""},{"location":"developer%20tutorials/get%20an%20llm%20summary/","title":"Get an llm summary","text":"
    from __future__ import annotations\nfrom langchain.globals import set_llm_cache\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.llm import get_llm_chain, get_llm_result_from_string\nfrom modules.utils import load_config_and_device\n
    # Config and DB\n\n# load the configuration and device\nconfig = load_config_and_device(\"../../backend/config.json\")\nconfig[\"persist_dir\"] = \"../../backend/data/chroma_db/\"\nconfig[\"data_dir\"] = \"../../backend/data/\"\n
    \n[INFO] Finding device.\n[INFO] Device found: cpu\n\n
    config[\"llm_prompt_template\"] = \"The following is a set of documents {docs}. Based on these docs, please summarize the content concisely. Also give a list of main concepts found in the documents. Do not add any new information. Helpful Answer: \"\nconfig[\"llm_model\"] = \"qwen2:1.5b\"\n
    # get the llm chain and set the cache\nllm_chain = get_llm_chain(config=config, local=True)\n# use os path to ensure compatibility with all operating systems\nset_llm_cache(SQLiteCache(database_path=os.path.join(config[\"data_dir\"], \".langchain.db\")))\n
    get_llm_result_from_string(llm_chain, \"This document is about eating disorders and this one is about eating nice food\")\n
    \n'Eating Disorders\\n\\n- Eating disorders refer to psychological and emotional conditions characterized by compulsive behaviors such as overeating or excessive restriction.\\n- These behaviors lead to significant weight loss, malnutrition, and serious health complications.\\n\\nEating Nice Food\\n\\n- This document focuses on the importance of eating good food for maintaining a healthy and balanced diet.\\n- It highlights how selecting nutrient-dense foods can aid in overall physical and mental well-being.'\n
    "},{"location":"developer%20tutorials/get%20an%20llm%20summary/#get-llm-summary-of-a-string","title":"Get LLM summary of a string","text":"
    • Ensure that Ollama is running before this works bash ollama/.get_ollama.sh (or use the desktop Ollama app for testing)
    "},{"location":"developer%20tutorials/load%20vectordb%20and%20get%20results/","title":"Load vectordb and get results","text":"
    from __future__ import annotations\nfrom langchain.globals import set_llm_cache\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\nimport chromadb\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.utils import load_config_and_device\nfrom modules.llm import setup_vector_db_and_qa\nfrom modules.results_gen import get_result_from_query\n
    # Config and DB\n\n# load the configuration and device\nconfig = load_config_and_device(\"../../backend/config.json\")\nconfig[\"persist_dir\"] = \"../../backend/data/chroma_db/\"\nconfig[\"data_dir\"] = \"../../backend/data/\"\n
    \n[INFO] Finding device.\n[INFO] Device found: cpu\n\n
    # load the persistent database using ChromaDB\nclient = chromadb.PersistentClient(path=config[\"persist_dir\"])\n
    # Setup llm chain, initialize the retriever and llm, and setup Retrieval QA\nqa_dataset = setup_vector_db_and_qa(config=config, data_type=\"dataset\", client=client)\n
    \n[INFO] Loading metadata from file.\n[INFO] Loading model...\n\n
    \n/Users/eragon/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n  warnings.warn(\n\n
    \n[INFO] Model loaded.\n\n
    query = \"give me datasets about mushrooms\"\n
    res = qa_dataset.invoke(input = query, top_k=5)[:10]\nres\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n[Document(page_content='### **Dataset Details**\\n![](https://meta-album.github.io/assets/img/samples/FNG.png)\\n\\n**Meta Album ID**: PLT.FNG  \\n**Meta Album URL**: [https://meta-album.github.io/datasets/FNG.html](https://meta-album.github.io/datasets/FNG.html)  \\n**Domain ID**: PLT  \\n**Domain Name**: Plants  \\n**Dataset ID**: FNG  \\n**Dataset Name**: Fungi  \\n**Short Description**: Fungi dataset from Denmark  \\n**\\\\# Classes**: 25  \\n**\\\\# Images**: 15122  \\n**Keywords**: fungi, ecology, plants  \\n**Data Format**: images  \\n**Image size**: 128x128  \\n\\n**License (original data release)**: BSD-3-Clause License  \\n**License URL(original data release)**: https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE\\n \\n**License (Meta-Album data release)**: BSD-3-Clause License  \\n**License URL (Meta-Album data release)**: [https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE](https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE)', metadata={'did': 44335, 'name': 'Meta_Album_FNG_Extended'}),\n Document(page_content='### **Dataset Details**\\n![](https://meta-album.github.io/assets/img/samples/FNG.png)\\n\\n**Meta Album ID**: PLT.FNG  \\n**Meta Album URL**: [https://meta-album.github.io/datasets/FNG.html](https://meta-album.github.io/datasets/FNG.html)  \\n**Domain ID**: PLT  \\n**Domain Name**: Plants  \\n**Dataset ID**: FNG  \\n**Dataset Name**: Fungi  \\n**Short Description**: Fungi dataset from Denmark  \\n**\\\\# Classes**: 25  \\n**\\\\# Images**: 1000  \\n**Keywords**: fungi, ecology, plants  \\n**Data Format**: images  \\n**Image size**: 128x128  \\n\\n**License (original data release)**: BSD-3-Clause License  \\n**License URL(original data release)**: https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE\\n \\n**License (Meta-Album data release)**: BSD-3-Clause License  \\n**License URL (Meta-Album data release)**: [https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE](https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE)', metadata={'did': 44302, 'name': 'Meta_Album_FNG_Mini'}),\n Document(page_content=\"### Description\\n\\nThis dataset describes mushrooms in terms of their physical characteristics. They are classified into: poisonous or edible.\\n\\n### Source\\n```\\n(a) Origin: \\nMushroom records are drawn from The Audubon Society Field Guide to North American Mushrooms (1981). G. H. Lincoff (Pres.), New York: Alfred A. Knopf \\n\\n(b) Donor: \\nJeff Schlimmer (Jeffrey.Schlimmer '@' a.gp.cs.cmu.edu)\\n```\\n\\n### Dataset description\\n\\nThis dataset includes descriptions of hypothetical samples corresponding to 23 species of gilled mushrooms in the Agaricus and Lepiota Family. Each species is identified as definitely edible, definitely poisonous, or of unknown edibility and not recommended. This latter class was combined with the poisonous one. The Guide clearly states that there is no simple rule for determining the edibility of a mushroom; no rule like ``leaflets three, let it be'' for Poisonous Oak and Ivy.\", metadata={'did': 24, 'name': 'mushroom'}),\n Document(page_content='### **Dataset Details**\\n![](https://meta-album.github.io/assets/img/samples/FNG.png)\\n\\n**Meta Album ID**: PLT.FNG  \\n**Meta Album URL**: [https://meta-album.github.io/datasets/FNG.html](https://meta-album.github.io/datasets/FNG.html)  \\n**Domain ID**: PLT  \\n**Domain Name**: Plants  \\n**Dataset ID**: FNG  \\n**Dataset Name**: Fungi  \\n**Short Description**: Fungi dataset from Denmark  \\n**\\\\# Classes**: 20  \\n**\\\\# Images**: 800  \\n**Keywords**: fungi, ecology, plants  \\n**Data Format**: images  \\n**Image size**: 128x128  \\n\\n**License (original data release)**: BSD-3-Clause License  \\n**License URL(original data release)**: https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE\\n \\n**License (Meta-Album data release)**: BSD-3-Clause License  \\n**License URL (Meta-Album data release)**: [https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE](https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE)', metadata={'did': 44272, 'name': 'Meta_Album_FNG_Micro'}),\n Document(page_content='**Source**: Danish Fungi Dataset  \\n**Source URL**: https://sites.google.com/view/danish-fungi-dataset  \\n  \\n**Original Author**: Lukas Picek, Milan Sulc, Jiri Matas, Jacob Heilmann-Clausen, Thomas S. Jeppesen, Thomas Laessoe, Tobias Froslev  \\n**Original contact**: lukaspicek@gmail.com  \\n\\n**Meta Album author**: Felix Herron  \\n**Created Date**: 01 March 2022  \\n**Contact Name**: Ihsan Ullah  \\n**Contact Email**: meta-album@chalearn.org  \\n**Contact URL**: [https://meta-album.github.io/](https://meta-album.github.io/)  \\n\\n\\n\\n### **Cite this dataset**\\n```\\n@article{picek2021danish,\\n    title={Danish Fungi 2020 - Not Just Another Image Recognition Dataset},\\n    author={Lukas Picek and Milan Sulc and Jiri Matas and Jacob Heilmann-Clausen and Thomas S. Jeppesen and Thomas Laessoe and Tobias Froslev},\\n    year={2021},\\n    eprint={2103.10107},\\n    archivePrefix={arXiv},\\n    primaryClass={cs.CV}\\n}\\n```', metadata={'did': 44272, 'name': 'Meta_Album_FNG_Micro'}),\n Document(page_content='did - 24, name - mushroom, version - 1, uploader - 1, status - active, format - ARFF, MajorityClassSize - 4208.0, MaxNominalAttDistinctValues - 12.0, MinorityClassSize - 3916.0, NumberOfClasses - 2.0, NumberOfFeatures - 23.0, NumberOfInstances - 8124.0, NumberOfInstancesWithMissingValues - 2480.0, NumberOfMissingValues - 2480.0, NumberOfNumericFeatures - 0.0, NumberOfSymbolicFeatures - 23.0, description - **Author**: [Jeff Schlimmer](Jeffrey.Schlimmer@a.gp.cs.cmu.edu)  \\n**Source**: [UCI](https://archive.ics.uci.edu/ml/datasets/mushroom) - 1981     \\n**Please cite**:  The Audubon Society Field Guide to North American Mushrooms (1981). G. H. Lincoff (Pres.), New York: Alfred A. Knopf \\n\\n\\n### Description\\n\\nThis dataset describes mushrooms in terms of their physical characteristics. They are classified into: poisonous or edible.', metadata={'did': 24, 'name': 'mushroom'}),\n Document(page_content='Meta-Album Fungi dataset is created by sampling the Danish Fungi 2020 dataset(https://arxiv.org/abs/2103.10107), itself a sampling of the Atlas of Danish Fungi repository. The images and labels which enter this database are sourced by a group consisting of 3 300 citizen botanists, then verified by their peers using a ranking of each person reliability, then finally verified by experts working at the Atlas. Of the 128 classes in the original Danish Fungi 2020 dataset, FNG retains the 25 most populous classes, belonging to six genera, for a total of 15 122 images total, with min 372, and max 1 221 images per class. Each image contains a colored 128x128 image of a fungus or a piece of a fungus from the corresponding class. Because the initial data were of widely varying sizes, we needed to crop a significant portion of the images, which we implemented by taking the largest possible square with center at the middle of the initial image. We then scaled each squared image to the 128x128', metadata={'did': 44272, 'name': 'Meta_Album_FNG_Micro'}),\n Document(page_content='did - 44272, name - Meta_Album_FNG_Micro, version - 1, uploader - 30980, status - active, format - arff, MajorityClassSize - 40.0, MaxNominalAttDistinctValues - nan, MinorityClassSize - 40.0, NumberOfClasses - 20.0, NumberOfFeatures - 3.0, NumberOfInstances - 800.0, NumberOfInstancesWithMissingValues - 0.0, NumberOfMissingValues - 0.0, NumberOfNumericFeatures - 0.0, NumberOfSymbolicFeatures - 0.0, description - ## **Meta-Album Fungi Dataset (Micro)**\\n***', metadata={'did': 44272, 'name': 'Meta_Album_FNG_Micro'}),\n Document(page_content='did - 44335, name - Meta_Album_FNG_Extended, version - 1, uploader - 30980, status - active, format - arff, MajorityClassSize - 1221.0, MaxNominalAttDistinctValues - nan, MinorityClassSize - 372.0, NumberOfClasses - 25.0, NumberOfFeatures - 3.0, NumberOfInstances - 15122.0, NumberOfInstancesWithMissingValues - 0.0, NumberOfMissingValues - 0.0, NumberOfNumericFeatures - 0.0, NumberOfSymbolicFeatures - 0.0, description - ## **Meta-Album Fungi Dataset (Extended)**\\n***', metadata={'did': 44335, 'name': 'Meta_Album_FNG_Extended'}),\n Document(page_content='did - 43922, name - mushroom, version - 3, uploader - 30861, status - active, format - ARFF, MajorityClassSize - 4208.0, MaxNominalAttDistinctValues - nan, MinorityClassSize - 3916.0, NumberOfClasses - 2.0, NumberOfFeatures - 23.0, NumberOfInstances - 8124.0, NumberOfInstancesWithMissingValues - 0.0, NumberOfMissingValues - 0.0, NumberOfNumericFeatures - 0.0, NumberOfSymbolicFeatures - 23.0, description - Mushroom records drawn from The Audubon Society Field Guide to North American Mushrooms (1981). G. H. Lincoff (Pres.), New York: Alfred A. Knopf, qualities - AutoCorrelation : 0.726332635725717, Dimensionality : 0.002831117676021664, MajorityClassPercentage : 51.7971442639094, MajorityClassSize : 4208.0, MinorityClassPercentage : 48.20285573609059, MinorityClassSize : 3916.0, NumberOfBinaryFeatures : 6.0, NumberOfClasses : 2.0, NumberOfFeatures : 23.0, NumberOfInstances : 8124.0, NumberOfInstancesWithMissingValues : 0.0, NumberOfMissingValues : 0.0, NumberOfNumericFeatures : 0.0,', metadata={'did': 43922, 'name': 'mushroom'})]\n
    res[0].metadata\n
    \n{'did': 44335, 'name': 'Meta_Album_FNG_Extended'}\n
    print(res[0].page_content)\n
    \n### **Dataset Details**\n![](https://meta-album.github.io/assets/img/samples/FNG.png)\n\n**Meta Album ID**: PLT.FNG  \n**Meta Album URL**: [https://meta-album.github.io/datasets/FNG.html](https://meta-album.github.io/datasets/FNG.html)  \n**Domain ID**: PLT  \n**Domain Name**: Plants  \n**Dataset ID**: FNG  \n**Dataset Name**: Fungi  \n**Short Description**: Fungi dataset from Denmark  \n**\\# Classes**: 25  \n**\\# Images**: 15122  \n**Keywords**: fungi, ecology, plants  \n**Data Format**: images  \n**Image size**: 128x128  \n\n**License (original data release)**: BSD-3-Clause License  \n**License URL(original data release)**: https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE\n\n**License (Meta-Album data release)**: BSD-3-Clause License  \n**License URL (Meta-Album data release)**: [https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE](https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE)\n\n
    # Fetch the result data frame based on the query\nresult_data_frame, result_documents = get_result_from_query(\n    query=query, qa=qa_dataset, type_of_query=\"dataset\", config=config\n)\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    result_data_frame.head()\n
    id name command OpenML URL Description 0 44335 Meta_Album_FNG_Extended dataset = openml.datasets.get_dataset(44335) <a href=\"https://www.openml.org/search?type=da... did - 44335, name - Meta_Album_FNG_Extended, v... 1 44302 Meta_Album_FNG_Mini dataset = openml.datasets.get_dataset(44302) <a href=\"https://www.openml.org/search?type=da... ### **Dataset Details**\\n![](https://meta-albu... 2 24 mushroom dataset = openml.datasets.get_dataset(24) <a href=\"https://www.openml.org/search?type=da... did - 24, name - mushroom, version - 1, upload... 3 44272 Meta_Album_FNG_Micro dataset = openml.datasets.get_dataset(44272) <a href=\"https://www.openml.org/search?type=da... did - 44272, name - Meta_Album_FNG_Micro, vers... 10 1558 bank-marketing dataset = openml.datasets.get_dataset(1558) <a href=\"https://www.openml.org/search?type=da... * Dataset:"},{"location":"developer%20tutorials/load%20vectordb%20and%20get%20results/#just-get-documents","title":"Just get documents","text":""},{"location":"developer%20tutorials/load%20vectordb%20and%20get%20results/#process-the-results-and-return-a-dataframe-instead","title":"Process the results and return a dataframe instead","text":""},{"location":"developer%20tutorials/run%20multiple%20queries%20and%20aggregate/","title":"Run multiple queries and aggregate","text":"
    from __future__ import annotations\nfrom langchain.globals import set_llm_cache\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\nimport chromadb\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.utils import load_config_and_device\nfrom modules.llm import setup_vector_db_and_qa\nfrom modules.results_gen import aggregate_multiple_queries_and_count\n
    # Config and DB\n\n# load the configuration and device\nconfig = load_config_and_device(\"../../backend/config.json\")\nconfig[\"persist_dir\"] = \"../../backend/data/chroma_db/\"\nconfig[\"data_dir\"] = \"../../backend/data/\"\n
    \n[INFO] Finding device.\n[INFO] Device found: cpu\n\n
    # load the persistent database using ChromaDB\nclient = chromadb.PersistentClient(path=config[\"persist_dir\"])\n
    # Setup llm chain, initialize the retriever and llm, and setup Retrieval QA\nqa_dataset = setup_vector_db_and_qa(config=config, data_type=\"dataset\", client=client)\n
    \n[INFO] Loading metadata from file.\n[INFO] Loading model...\n\n
    \n/Users/eragon/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n  warnings.warn(\n\n
    \n[INFO] Model loaded.\n\n
    queries = [\"Find datasets related to COVID-19\", \"Find datasets related to COVID-19 and India\", \"COVID-19 dataset\", \"COVID-19 dataset India\", \"Mexico historical covid\"]\ncombined_df = aggregate_multiple_queries_and_count(queries,qa_dataset=qa_dataset, config=config, group_cols = [\"id\", \"name\"], sort_by=\"query\", count = True)\n
    \n  0%|          | 0/5 [00:00<?, ?it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 20%|\u2588\u2588        | 1/5 [00:02<00:08,  2.14s/it]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 40%|\u2588\u2588\u2588\u2588      | 2/5 [00:02<00:03,  1.17s/it]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:03<00:01,  1.14it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:03<00:00,  1.32it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:03<00:00,  1.26it/s]\n\n
    combined_df.head()\n
    id name query 36 43495 COVID-19-Mexico-Clean--Order-by-States 4 52 43844 Coronavirus-Worldwide-Dataset 4 26 43349 COVID-19-World-Vaccination-Progress 4 27 43365 Covid-19-Case-Surveillance-Public-Use-Dataset 4 28 43367 COVID-19-Indonesia-Dataset 4
    queries = [\"Find datasets related to COVID-19\", \"Find datasets related to COVID-19 and India\", \"COVID-19 dataset\", \"COVID-19 dataset India\", \"Mexico historical covid\"]\ncombined_df = aggregate_multiple_queries_and_count(queries,qa_dataset=qa_dataset, config=config, group_cols = [\"id\", \"name\"], sort_by=\"query\", count = False)\n
    \n  0%|          | 0/5 [00:00<?, ?it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 20%|\u2588\u2588        | 1/5 [00:00<00:02,  1.43it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 40%|\u2588\u2588\u2588\u2588      | 2/5 [00:01<00:01,  1.99it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:01<00:01,  1.50it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:02<00:00,  1.85it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:02<00:00,  2.01it/s]\n\n
    combined_df.head()\n
    id name query 0 43410 Coronavirus-Disease-(COVID-19) Find datasets related to COVID-19 1 43412 COVID-19-Visualisation-and-Epidemic-Analysis-Data Find datasets related to COVID-19 2 43365 Covid-19-Case-Surveillance-Public-Use-Dataset Find datasets related to COVID-19 3 43367 COVID-19-Indonesia-Dataset Find datasets related to COVID-19 4 43684 COVID-19-Stats-and-Mobility-Trends Find datasets related to COVID-19"},{"location":"developer%20tutorials/run%20multiple%20queries%20and%20aggregate/#aggregate-results","title":"Aggregate results","text":""},{"location":"developer%20tutorials/run%20multiple%20queries%20and%20aggregate/#just-collate","title":"Just collate","text":""},{"location":"modules/general_utils/","title":"General utils","text":""},{"location":"modules/general_utils/#general_utils.find_device","title":"find_device(training=False)","text":"

    Description: Find the device to use for the pipeline. If cuda is available, use it. If not, check if MPS is available and use it. If not, use CPU.

    Input: training (bool) : Whether the pipeline is being used for training or not.

    Returns: device (str) : The device to use for the pipeline.

    Source code in backend/modules/general_utils.py
    def find_device(training: bool = False ) -> str:\n    \"\"\"\n    Description: Find the device to use for the pipeline. If cuda is available, use it. If not, check if MPS is available and use it. If not, use CPU.\n\n    Input: training (bool) : Whether the pipeline is being used for training or not.\n\n    Returns: device (str) : The device to use for the pipeline.\n    \"\"\"\n    print(\"[INFO] Finding device.\")\n    if torch.cuda.is_available():\n        return \"cuda\"\n    elif torch.backends.mps.is_available():\n        if training == False:\n            # loading metadata on mps for inference is quite slow. So disabling for now.\n            return \"cpu\"\n        return \"mps\"\n    else:\n        return \"cpu\"\n
    "},{"location":"modules/general_utils/#general_utils.load_config_and_device","title":"load_config_and_device(config_file, training=False)","text":"

    Description: Load the config file and find the device to use for the pipeline.

    Input: config_file (str) : The path to the config file. training (bool) : Whether the pipeline is being used for training or not.

    Returns: config (dict) : The config dictionary + device (str) : The device to use for the pipeline.

    Source code in backend/modules/general_utils.py
    def load_config_and_device(config_file: str, training: bool = False) -> dict:\n    \"\"\"\n    Description: Load the config file and find the device to use for the pipeline.\n\n    Input: config_file (str) : The path to the config file.\n    training (bool) : Whether the pipeline is being used for training or not.\n\n    Returns: config (dict) : The config dictionary + device (str) : The device to use for the pipeline.\n    \"\"\"\n    # Check if the config file exists and load it\n    if not os.path.exists(config_file):\n        raise Exception(\"Config file does not exist.\")\n    with open(config_file, \"r\") as f:\n        config = json.load(f)\n\n    # Find device and set it in the config between cpu and cuda and mps if available\n    config[\"device\"] = find_device(training)\n    print(f\"[INFO] Device found: {config['device']}\")\n    return config\n
    "},{"location":"modules/llm_module/","title":"Llm module","text":""},{"location":"modules/llm_module/#llm.add_documents_to_db","title":"add_documents_to_db(db, unique_docs, unique_ids)","text":"

    Description: Add documents to the vector store in batches of 200.

    Input: db (Chroma), unique_docs (list), unique_ids (list)

    Returns: None

    Source code in backend/modules/llm.py
    def add_documents_to_db(db, unique_docs, unique_ids):\n    \"\"\"\n    Description: Add documents to the vector store in batches of 200.\n\n    Input: db (Chroma), unique_docs (list), unique_ids (list)\n\n    Returns: None\n    \"\"\"\n    bs = 512\n    if len(unique_docs) < bs:\n        db.add_documents(unique_docs, ids=unique_ids)\n    else:\n        for i in tqdm(range(0, len(unique_docs), bs)):\n            db.add_documents(unique_docs[i : i + bs], ids=unique_ids[i : i + bs])\n
    "},{"location":"modules/llm_module/#llm.create_vector_store","title":"create_vector_store(metadata_df, chroma_client, config, embeddings, collection_name)","text":"

    Description: Create the vector store using Chroma db. The documents are loaded and processed, unique documents are generated, and the documents are added to the vector store.

    Input: metadata_df (pd.DataFrame), chroma_client (chromadb.PersistentClient), config (dict), embeddings (HuggingFaceEmbeddings), collection_name (str)

    Returns: db (Chroma)

    Source code in backend/modules/llm.py
    def create_vector_store(\n    metadata_df: pd.DataFrame, chroma_client:ClientAPI, config: dict, embeddings: HuggingFaceEmbeddings, collection_name: str \n) -> Chroma:\n    \"\"\"\n    Description: Create the vector store using Chroma db. The documents are loaded and processed, unique documents are generated, and the documents are added to the vector store.\n\n    Input: metadata_df (pd.DataFrame), chroma_client (chromadb.PersistentClient), config (dict), embeddings (HuggingFaceEmbeddings), collection_name (str)\n\n    Returns: db (Chroma)\n    \"\"\"\n\n    db = Chroma(\n        client=chroma_client,\n        embedding_function=embeddings,\n        persist_directory=config[\"persist_dir\"],\n        collection_name=collection_name,\n    )\n\n    documents = load_and_process_data(\n        metadata_df, page_content_column=\"Combined_information\"\n    )\n    if config[\"testing_flag\"]:\n        # subset the data for testing\n        if config[\"test_subset_2000\"] == True:\n            print(\"[INFO] Subsetting the data to 2000 rows.\")\n            documents = documents[:2000]\n    unique_docs, unique_ids = generate_unique_documents(documents, db)\n\n    print(\n        f\"Number of unique documents: {len(unique_docs)} vs Total documents: {len(documents)}\"\n    )\n    if len(unique_docs) == 0:\n        print(\"No new documents to add.\")\n        return db\n    else:\n        # db.add_documents(unique_docs, ids=unique_ids)\n        add_documents_to_db(db, unique_docs, unique_ids)\n\n    return db\n
    "},{"location":"modules/llm_module/#llm.generate_unique_documents","title":"generate_unique_documents(documents, db)","text":"Generate unique documents by removing duplicates. This is done by generating unique IDs for the documents and keeping only one of the duplicate IDs.

    Source: https://stackoverflow.com/questions/76265631/chromadb-add-single-document-only-if-it-doesnt-exist

    Input: documents (list)

    Returns: unique_docs (list), unique_ids (list)

    Source code in backend/modules/llm.py
    def generate_unique_documents(documents: list, db: Chroma) -> tuple:\n    \"\"\"\n    Description: Generate unique documents by removing duplicates. This is done by generating unique IDs for the documents and keeping only one of the duplicate IDs.\n        Source: https://stackoverflow.com/questions/76265631/chromadb-add-single-document-only-if-it-doesnt-exist\n\n    Input: documents (list)\n\n    Returns: unique_docs (list), unique_ids (list)\n    \"\"\"\n\n    # Remove duplicates based on ID (from database)\n    new_document_ids = set([str(x.metadata[\"did\"]) for x in documents])\n    print(f\"[INFO] Generating unique documents. Total documents: {len(documents)}\")\n    try:\n        old_dids = set([str(x[\"did\"]) for x in db.get()[\"metadatas\"]])\n    except KeyError:\n        old_dids = set([str(x[\"id\"]) for x in db.get()[\"metadatas\"]])\n\n    new_dids = new_document_ids - old_dids\n    documents = [x for x in documents if str(x.metadata[\"did\"]) in new_dids]\n    ids = [str(uuid.uuid5(uuid.NAMESPACE_DNS,doc.page_content)) for doc in documents]\n\n    # Remove duplicates based on document content (from new documents)\n    unique_ids = list(set(ids))\n    seen_ids = set()\n    unique_docs = [\n            doc\n            for doc, id in zip(documents, ids)\n            if id not in seen_ids and (seen_ids.add(id) or True)\n        ]\n\n    return unique_docs, unique_ids\n
    "},{"location":"modules/llm_module/#llm.get_collection_name","title":"get_collection_name(config)","text":"

    Description: Get the collection name based on the type of data provided in the config.

    Input: config (dict)

    Returns: str

    Source code in backend/modules/llm.py
    def get_collection_name(config: dict) -> str:\n    \"\"\"\n    Description: Get the collection name based on the type of data provided in the config.\n\n    Input: config (dict)\n\n    Returns: str\n    \"\"\"\n    return {\"dataset\": \"datasets\", \"flow\": \"flows\"}.get(\n        config[\"type_of_data\"], \"default\"\n    )\n
    "},{"location":"modules/llm_module/#llm.get_llm_chain","title":"get_llm_chain(config, local=False)","text":"

    Description: Get the LLM chain with the specified model and prompt template.

    Input: config (dict)

    Returns: LLMChain

    Source code in backend/modules/llm.py
    def get_llm_chain(config: dict, local:bool =False) -> LLMChain|bool:\n    \"\"\"\n    Description: Get the LLM chain with the specified model and prompt template.\n\n    Input: config (dict)\n\n    Returns: LLMChain\n    \"\"\"\n    base_url = \"http://127.0.0.1:11434\" if local else \"http://ollama:11434\"\n    llm = Ollama(\n        model = config[\"llm_model\"] , base_url = base_url\n    )  \n    # llm = Ollama(\n        # model = config[\"llm_model\"]\n    # )\n    # print(llm)\n    map_template = config[\"llm_prompt_template\"]\n    map_prompt = PromptTemplate.from_template(map_template)\n    # return LLMChain(llm=llm, prompt=map_prompt)\n    return map_prompt | llm | StrOutputParser()\n
    "},{"location":"modules/llm_module/#llm.initialize_llm_chain","title":"initialize_llm_chain(vectordb, config)","text":"

    Description: Initialize the LLM chain and setup Retrieval QA with the specified configuration.

    Input: vectordb (Chroma), config (dict)

    Returns: qa (langchain.chains.retrieval_qa.base.RetrievalQA)

    Source code in backend/modules/llm.py
    def initialize_llm_chain(\n    vectordb: Chroma,\n    config : dict\n) -> langchain.chains.retrieval_qa.base.RetrievalQA:\n    \"\"\"\n    Description: Initialize the LLM chain and setup Retrieval QA with the specified configuration.\n\n    Input: vectordb (Chroma), config (dict)\n\n    Returns: qa (langchain.chains.retrieval_qa.base.RetrievalQA)\n    \"\"\"\n\n    return vectordb.as_retriever(\n        search_type=config[\"search_type\"],\n        search_kwargs={\"k\": config[\"num_return_documents\"]},\n    )\n
    "},{"location":"modules/llm_module/#llm.load_and_process_data","title":"load_and_process_data(metadata_df, page_content_column)","text":"

    Description: Load and process the data for the vector store. Split the documents into chunks of 1000 characters.

    Input: metadata_df (pd.DataFrame), page_content_column (str)

    Returns: chunked documents (list)

    Source code in backend/modules/llm.py
    def load_and_process_data(metadata_df: pd.DataFrame, page_content_column: str) -> list:\n    \"\"\"\n    Description: Load and process the data for the vector store. Split the documents into chunks of 1000 characters.\n\n    Input: metadata_df (pd.DataFrame), page_content_column (str)\n\n    Returns: chunked documents (list)\n    \"\"\"\n    # Load data\n    loader = DataFrameLoader(metadata_df, page_content_column=page_content_column)\n    documents = loader.load()\n\n    # Split documents\n    text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=150)\n    documents = text_splitter.split_documents(documents)\n\n    return documents\n
    "},{"location":"modules/llm_module/#llm.load_document_and_create_vector_store","title":"load_document_and_create_vector_store(metadata_df, chroma_client, config)","text":"

    Loads the documents and creates the vector store. If the training flag is set to True, the documents are added to the vector store. If the training flag is set to False, the vector store is loaded from the persist directory.

    Parameters:

    Name Type Description Default metadata_df DataFrame

    The metadata dataframe.

    required chroma_client PersistentClient

    The Chroma client.

    required config dict

    The configuration dictionary.

    required

    Returns:

    Name Type Description Chroma Chroma

    The Chroma vector store.

    Source code in backend/modules/llm.py
    def load_document_and_create_vector_store(metadata_df: pd.DataFrame, chroma_client:ClientAPI , config: dict) -> Chroma:\n    \"\"\"\n    Loads the documents and creates the vector store. If the training flag is set to True,\n    the documents are added to the vector store. If the training flag is set to False,\n    the vector store is loaded from the persist directory.\n\n    Args:\n        metadata_df (pd.DataFrame): The metadata dataframe.\n        chroma_client (chromadb.PersistentClient): The Chroma client.\n        config (dict): The configuration dictionary.\n\n    Returns:\n        Chroma: The Chroma vector store.\n    \"\"\"\n    embeddings = load_model(config)\n    collection_name = get_collection_name(config)\n\n    if not config[\"training\"]:\n        return load_vector_store(chroma_client, config, embeddings, collection_name)\n\n    return create_vector_store(\n        metadata_df, chroma_client, config, embeddings, collection_name\n    )\n
    "},{"location":"modules/llm_module/#llm.load_model","title":"load_model(config)","text":"

    Description: Load the model using HuggingFaceEmbeddings.

    Input: config (dict)

    Returns: HuggingFaceEmbeddings

    Source code in backend/modules/llm.py
    def load_model(config: dict) -> HuggingFaceEmbeddings | None:\n    \"\"\"\n    Description: Load the model using HuggingFaceEmbeddings.\n\n    Input: config (dict)\n\n    Returns: HuggingFaceEmbeddings\n    \"\"\"\n    print(\"[INFO] Loading model...\")\n    model_kwargs = {\"device\": config[\"device\"], \"trust_remote_code\": True}\n    encode_kwargs = {\"normalize_embeddings\": True}\n    embeddings = HuggingFaceEmbeddings(\n        model_name=config[\"embedding_model\"],\n        model_kwargs=model_kwargs,\n        encode_kwargs=encode_kwargs,\n        show_progress = True,\n        # trust_remote_code=True\n    )\n    print(\"[INFO] Model loaded.\")\n    return embeddings\n
    "},{"location":"modules/llm_module/#llm.load_vector_store","title":"load_vector_store(chroma_client, config, embeddings, collection_name)","text":"

    Description: Load the vector store from the persist directory.

    Input: chroma_client (chromadb.PersistentClient), config (dict), embeddings (HuggingFaceEmbeddings), collection_name (str)

    Returns: Chroma

    Source code in backend/modules/llm.py
    def load_vector_store(chroma_client: ClientAPI, config: dict, embeddings: HuggingFaceEmbeddings, collection_name: str) -> Chroma:\n    \"\"\"\n    Description: Load the vector store from the persist directory.\n\n    Input: chroma_client (chromadb.PersistentClient), config (dict), embeddings (HuggingFaceEmbeddings), collection_name (str)\n\n    Returns: Chroma\n    \"\"\"\n    if not os.path.exists(config[\"persist_dir\"]):\n        raise Exception(\n            \"Persist directory does not exist. Please run the training pipeline first.\"\n        )\n\n    return Chroma(\n        client=chroma_client,\n        persist_directory=config[\"persist_dir\"],\n        embedding_function=embeddings,\n        collection_name=collection_name,\n    )\n
    "},{"location":"modules/llm_module/#llm.setup_vector_db_and_qa","title":"setup_vector_db_and_qa(config, data_type, client)","text":"

    Description: Create the vector database using Chroma db with each type of data in its own collection. Doing so allows us to have a single database with multiple collections, reducing the number of databases we need to manage. This also downloads the embedding model if it does not exist. The QA chain is then initialized with the vector store and the configuration.

    Input: config (dict), data_type (str), client (chromadb.PersistentClient)

    Returns: qa (langchain.chains.retrieval_qa.base.RetrievalQA)

    Source code in backend/modules/llm.py
    def setup_vector_db_and_qa(config: dict, data_type: str, client:ClientAPI) -> langchain.chains.retrieval_qa.base.RetrievalQA:\n    \"\"\"\n    Description: Create the vector database using Chroma db with each type of data in its own collection. Doing so allows us to have a single database with multiple collections, reducing the number of databases we need to manage.\n    This also downloads the embedding model if it does not exist. The QA chain is then initialized with the vector store and the configuration.\n\n    Input: config (dict), data_type (str), client (chromadb.PersistentClient)\n\n    Returns: qa (langchain.chains.retrieval_qa.base.RetrievalQA)\n    \"\"\"\n\n    config[\"type_of_data\"] = data_type\n    # Download the data if it does not exist\n    openml_data_object, data_id, all_metadata = get_all_metadata_from_openml(\n        config=config\n    )\n    # Create the combined metadata dataframe\n    metadata_df, all_metadata = create_metadata_dataframe(\n        openml_data_object, data_id, all_metadata, config=config\n    )\n    # Create the vector store\n    vectordb = load_document_and_create_vector_store(\n        metadata_df, config=config, chroma_client=client\n    )\n    # Initialize the LLM chain and setup Retrieval QA\n    qa = initialize_llm_chain(vectordb=vectordb, config=config)\n    return qa\n
    "},{"location":"modules/metadata_module/","title":"Metadata module","text":""},{"location":"modules/metadata_module/#metadata_utils.combine_metadata","title":"combine_metadata(all_dataset_metadata, all_data_description_df)","text":"

    Description: Combine the descriptions with the metadata table.

    Input: all_dataset_metadata (pd.DataFrame) : The metadata table, all_data_description_df (pd.DataFrame) : The descriptions

    Returns: The combined metadata table.

    Source code in backend/modules/metadata_utils.py
    def combine_metadata(all_dataset_metadata: pd.DataFrame, all_data_description_df: pd.DataFrame) -> pd.DataFrame:\n    \"\"\"\n    Description: Combine the descriptions with the metadata table.\n\n    Input: all_dataset_metadata (pd.DataFrame) : The metadata table,\n    all_data_description_df (pd.DataFrame) : The descriptions\n\n    Returns: The combined metadata table.\n    \"\"\"\n    # Combine the descriptions with the metadata table\n    all_dataset_metadata = pd.merge(\n        all_dataset_metadata, all_data_description_df, on=\"did\", how=\"inner\"\n    )\n\n    # Create a single column that has a combined string of all the metadata and the description in the form of \"column - value, column - value, ... description\"\n\n    all_dataset_metadata[\"Combined_information\"] = all_dataset_metadata.apply(\n        merge_all_columns_to_string, axis=1\n    )\n    return all_dataset_metadata\n
    "},{"location":"modules/metadata_module/#metadata_utils.create_combined_information_df","title":"create_combined_information_df(data_id, descriptions, joined_qualities, joined_features)","text":"

    Description: Create a dataframe with the combined information of the OpenML object.

    Input: data_id (int) : The data id, descriptions (list) : The descriptions of the OpenML object, joined_qualities (list) : The joined qualities of the OpenML object, joined_features (list) : The joined features of the OpenML object

    Returns: The dataframe with the combined information of the OpenML object.

    Source code in backend/modules/metadata_utils.py
    def create_combined_information_df(\n    # data_id, descriptions, joined_qualities, joined_features\n    data_id: int| Sequence[int], descriptions: Sequence[str], joined_qualities: Sequence[str], joined_features: Sequence[str]\n) -> pd.DataFrame:\n    \"\"\"\n    Description: Create a dataframe with the combined information of the OpenML object.\n\n    Input: data_id (int) : The data id, descriptions (list) : The descriptions of the OpenML object, joined_qualities (list) : The joined qualities of the OpenML object, joined_features (list) : The joined features of the OpenML object\n\n    Returns: The dataframe with the combined information of the OpenML object.\n    \"\"\"\n    return pd.DataFrame(\n        {\n            \"did\": data_id,\n            \"description\": descriptions,\n            \"qualities\": joined_qualities,\n            \"features\": joined_features,\n        }\n    )\n
    "},{"location":"modules/metadata_module/#metadata_utils.create_metadata_dataframe","title":"create_metadata_dataframe(openml_data_object, data_id, all_dataset_metadata, config)","text":"

    Creates a dataframe with all the metadata, joined columns with all information for the type of data specified in the config. If training is set to False, the dataframes are loaded from the files. If training is set to True, the dataframes are created and then saved to the files.

    Parameters:

    Name Type Description Default openml_data_object list

    The list of OpenML objects.

    required data_id list

    The list of data ids.

    required all_dataset_metadata DataFrame

    The metadata table.

    required config dict

    The config dictionary.

    required

    Returns:

    Type Description DataFrame

    pd.DataFrame: The combined metadata dataframe.

    DataFrame

    pd.DataFrame: The updated metadata table.

    Source code in backend/modules/metadata_utils.py
    def create_metadata_dataframe(\n    # openml_data_object, data_id, all_dataset_metadata, config\n    openml_data_object: Sequence[Union[openml.datasets.dataset.OpenMLDataset, openml.flows.flow.OpenMLFlow]], data_id: Sequence[int], all_dataset_metadata: pd.DataFrame, config: dict\n) -> Tuple[pd.DataFrame, pd.DataFrame]:\n    \"\"\"\n    Creates a dataframe with all the metadata, joined columns with all information\n    for the type of data specified in the config. If training is set to False,\n    the dataframes are loaded from the files. If training is set to True, the\n    dataframes are created and then saved to the files.\n\n    Args:\n        openml_data_object (list): The list of OpenML objects.\n        data_id (list): The list of data ids.\n        all_dataset_metadata (pd.DataFrame): The metadata table.\n        config (dict): The config dictionary.\n\n    Returns:\n        pd.DataFrame: The combined metadata dataframe.\n        pd.DataFrame: The updated metadata table.\n    \"\"\"\n    # use os.path.join to ensure compatibility with different operating systems\n    file_path = os.path.join(\n        config[\"data_dir\"], f\"all_{config['type_of_data']}_description.csv\"\n    )\n\n    if not config[\"training\"]:\n        return load_metadata(file_path), all_dataset_metadata\n\n    if config[\"type_of_data\"] == \"dataset\":\n        return process_dataset_metadata(\n            openml_data_object, data_id, all_dataset_metadata, file_path\n        )\n\n    if config[\"type_of_data\"] == \"flow\":\n        return process_flow_metadata(openml_data_object, data_id, file_path)\n\n    raise ValueError(f\"Unsupported type_of_data: {config['type_of_data']}\")\n
    "},{"location":"modules/metadata_module/#metadata_utils.extract_attribute","title":"extract_attribute(attribute, attr_name)","text":"

    Description: Extract an attribute from the OpenML object.

    Input: attribute (object) : The OpenML object

    Returns: The attribute value if it exists, else an empty string.

    Source code in backend/modules/metadata_utils.py
    def extract_attribute(attribute: object, attr_name: str) -> str:\n    \"\"\"\n    Description: Extract an attribute from the OpenML object.\n\n    Input: attribute (object) : The OpenML object\n\n    Returns: The attribute value if it exists, else an empty string.\n    \"\"\"\n    return getattr(attribute, attr_name, \"\")\n
    "},{"location":"modules/metadata_module/#metadata_utils.get_all_metadata_from_openml","title":"get_all_metadata_from_openml(config)","text":"

    Description: Gets all the metadata from OpenML for the type of data specified in the config. If training is set to False, it loads the metadata from the files. If training is set to True, it gets the metadata from OpenML.

    This uses parallel threads (pqdm) and so to ensure thread safety, install the package oslo.concurrency.

    Input: config (dict) : The config dictionary

    Returns: all the data descriptions combined with data ids, data ids, and the raw openml objects in a dataframe.

    Source code in backend/modules/metadata_utils.py
    def get_all_metadata_from_openml(config: dict) -> Tuple[pd.DataFrame, Sequence[int], pd.DataFrame] | None:\n    \"\"\"\n    Description: Gets all the metadata from OpenML for the type of data specified in the config.\n    If training is set to False, it loads the metadata from the files. If training is set to True, it gets the metadata from OpenML.\n\n    This uses parallel threads (pqdm) and so to ensure thread safety, install the package oslo.concurrency.\n\n\n    Input: config (dict) : The config dictionary\n\n    Returns: all the data descriptions combined with data ids, data ids, and the raw openml objects in a dataframe.\n    \"\"\"\n\n    # save_filename = f\"./data/all_{config['type_of_data']}_metadata.pkl\"\n    # use os.path.join to ensure compatibility with different operating systems\n    save_filename = os.path.join(\n        config[\"data_dir\"], f\"all_{config['type_of_data']}_metadata.pkl\"\n    )\n    # If we are not training, we do not need to recreate the cache and can load the metadata from the files. If the files do not exist, raise an exception.\n    # TODO : Check if this behavior is correct, or if data does not exist, send to training pipeline?\n    if config[\"training\"] == False or config[\"ignore_downloading_data\"] == True:\n        # print(\"[INFO] Training is set to False.\")\n        # Check if the metadata files exist for all types of data\n        if not os.path.exists(save_filename):\n            raise Exception(\n                \"Metadata files do not exist. Please run the training pipeline first.\"\n            )\n        print(\"[INFO] Loading metadata from file.\")\n        # Load the metadata files for all types of data\n        return load_metadata_from_file(save_filename)\n\n    # If we are training, we need to recreate the cache and get the metadata from OpenML\n    if config[\"training\"] == True:\n        print(\"[INFO] Training is set to True.\")\n        # Gather all OpenML objects of the type of data\n        all_objects = get_openml_objects(config[\"type_of_data\"])\n\n        # subset the data for testing\n        if config[\"test_subset_2000\"] == True:\n            print(\"[INFO] Subsetting the data to 2000 rows.\")\n            all_objects = all_objects[:2000]\n\n        data_id = [int(all_objects.iloc[i][\"did\"]) for i in range(len(all_objects))]\n\n        print(\"[INFO] Initializing cache.\")\n        initialize_cache(config[\"type_of_data\"], data_id)\n\n        print(f\"[INFO] Getting {config['type_of_data']} metadata from OpenML.\")\n        openml_data_object = get_metadata_from_openml(config, data_id)\n\n        print(\"[INFO] Saving metadata to file.\")\n        save_metadata_to_file((openml_data_object, data_id, all_objects), save_filename)\n\n        return openml_data_object, data_id, all_objects\n
    "},{"location":"modules/metadata_module/#metadata_utils.get_dataset_description","title":"get_dataset_description(dataset_id)","text":"

    Get the dataset description from OpenML using the dataset id

    Input: dataset_id (int) : The dataset id

    Returns: data (openml.datasets.dataset.OpenMLDataset) : The dataset object from OpenML

    Source code in backend/modules/metadata_utils.py
    def get_dataset_description(dataset_id) -> openml.datasets.dataset.OpenMLDataset:\n    \"\"\"\n    Get the dataset description from OpenML using the dataset id\n\n    Input: dataset_id (int) : The dataset id\n\n    Returns: data (openml.datasets.dataset.OpenMLDataset) : The dataset object from OpenML\n    \"\"\"\n    # TODO : Check for objects that do not have qualities being not downloaded properly\n    # try:\n    data = openml.datasets.get_dataset(\n        dataset_id=dataset_id,\n        download_data=False,\n        download_qualities=True,\n        download_features_meta_data=True,\n    )\n\n    return data\n
    "},{"location":"modules/metadata_module/#metadata_utils.get_flow_description","title":"get_flow_description(flow_id)","text":"

    Get the flow description from OpenML using the flow id

    Input: flow_id (int) : The flow id

    Returns: data (openml.flows.flow.OpenMLFlow) : The flow object from OpenML

    Source code in backend/modules/metadata_utils.py
    def get_flow_description(flow_id: int) -> openml.flows.flow.OpenMLFlow:\n    \"\"\"\n    Get the flow description from OpenML using the flow id\n\n    Input: flow_id (int) : The flow id\n\n    Returns: data (openml.flows.flow.OpenMLFlow) : The flow object from OpenML\n    \"\"\"\n    return openml.flows.get_flow(flow_id=flow_id)\n
    "},{"location":"modules/metadata_module/#metadata_utils.get_metadata_from_openml","title":"get_metadata_from_openml(config, data_id)","text":"

    Get metadata from OpenML using parallel processing.

    Source code in backend/modules/metadata_utils.py
    def get_metadata_from_openml(config, data_id: Sequence[int]):\n    \"\"\"\n    Get metadata from OpenML using parallel processing.\n    \"\"\"\n    if config[\"type_of_data\"] == \"dataset\":\n        return pqdm(\n            data_id, get_dataset_description, n_jobs=config[\"data_download_n_jobs\"]\n        )\n    elif config[\"type_of_data\"] == \"flow\":\n        return pqdm(\n            data_id, get_flow_description, n_jobs=config[\"data_download_n_jobs\"]\n        )\n
    "},{"location":"modules/metadata_module/#metadata_utils.get_openml_objects","title":"get_openml_objects(type_of_data)","text":"

    Get OpenML objects based on the type of data.

    Source code in backend/modules/metadata_utils.py
    def get_openml_objects(type_of_data: str):\n    \"\"\"\n    Get OpenML objects based on the type of data.\n    \"\"\"\n    if type_of_data == \"dataset\":\n        return openml.datasets.list_datasets(output_format=\"dataframe\")\n    elif type_of_data == \"flow\":\n        all_objects = openml.flows.list_flows(output_format=\"dataframe\")\n        return all_objects.rename(columns={\"id\": \"did\"})\n    else:\n        raise ValueError(\"Invalid type_of_data specified\")\n
    "},{"location":"modules/metadata_module/#metadata_utils.initialize_cache","title":"initialize_cache(type_of_data, data_id)","text":"

    Initialize cache for the OpenML objects.

    Source code in backend/modules/metadata_utils.py
    def initialize_cache(type_of_data: str, data_id: Sequence[int]) -> None:\n    \"\"\"\n    Initialize cache for the OpenML objects.\n    \"\"\"\n    if type_of_data == \"dataset\":\n        get_dataset_description(data_id[0])\n    elif type_of_data == \"flow\":\n        get_flow_description(data_id[0])\n
    "},{"location":"modules/metadata_module/#metadata_utils.join_attributes","title":"join_attributes(attribute, attr_name)","text":"

    Description: Join the attributes of the OpenML object.

    Input: attribute (object) : The OpenML object

    Returns: The joined attributes if they exist, else an empty string. example: \"column - value, column - value, ...\"

    Source code in backend/modules/metadata_utils.py
    def join_attributes(attribute: object, attr_name: str) -> str:\n    \"\"\"\n    Description: Join the attributes of the OpenML object.\n\n    Input: attribute (object) : The OpenML object\n\n    Returns: The joined attributes if they exist, else an empty string.\n    example: \"column - value, column - value, ...\"\n    \"\"\"\n\n    return (\n        \" \".join([f\"{k} : {v},\" for k, v in getattr(attribute, attr_name, {}).items()])\n        if hasattr(attribute, attr_name)\n        else \"\"\n    )\n
    "},{"location":"modules/metadata_module/#metadata_utils.load_metadata_from_file","title":"load_metadata_from_file(save_filename)","text":"

    Load metadata from a file.

    Source code in backend/modules/metadata_utils.py
    def load_metadata_from_file(save_filename: str) -> Tuple[pd.DataFrame, Sequence[int], pd.DataFrame]:\n    \"\"\"\n    Load metadata from a file.\n    \"\"\"\n    with open(save_filename, \"rb\") as f:\n        return pickle.load(f)\n
    "},{"location":"modules/metadata_module/#metadata_utils.merge_all_columns_to_string","title":"merge_all_columns_to_string(row)","text":"

    Description: Create a single column that has a combined string of all the metadata and the description in the form of \"column - value, column - value, ... description\"

    Input: row (pd.Series) : The row of the dataframe

    Returns: The combined string of all the metadata and the description in the form of \"column - value, column - value, ... description\"

    Source code in backend/modules/metadata_utils.py
    def merge_all_columns_to_string(row: pd.Series) -> str:\n    \"\"\"\n    Description: Create a single column that has a combined string of all the metadata and the description in the form of \"column - value, column - value, ... description\"\n\n    Input: row (pd.Series) : The row of the dataframe\n\n    Returns: The combined string of all the metadata and the description in the form of \"column - value, column - value, ... description\"\n    \"\"\"\n\n    return \" \".join([f\"{col} - {val},\" for col, val in zip(row.index, row.values)])\n
    "},{"location":"modules/metadata_module/#metadata_utils.process_dataset_metadata","title":"process_dataset_metadata(openml_data_object, data_id, all_dataset_metadata, file_path)","text":"

    Description: Process the dataset metadata.

    Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, all_dataset_metadata (pd.DataFrame) : The metadata table, file_path (str) : The file path

    Returns: The combined metadata dataframe and the updated metadata table.

    Source code in backend/modules/metadata_utils.py
    def process_dataset_metadata(\n    openml_data_object: Sequence[openml.datasets.dataset.OpenMLDataset], data_id: Sequence[int], all_dataset_metadata: pd.DataFrame, file_path: str\n) -> Tuple[pd.DataFrame, pd.DataFrame]:\n    \"\"\"\n    Description: Process the dataset metadata.\n\n    Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, all_dataset_metadata (pd.DataFrame) : The metadata table, file_path (str) : The file path\n\n    Returns: The combined metadata dataframe and the updated metadata table.\n    \"\"\"\n    descriptions = [\n        extract_attribute(attr, \"description\") for attr in openml_data_object\n    ]\n    joined_qualities = [\n        join_attributes(attr, \"qualities\") for attr in openml_data_object\n    ]\n    joined_features = [join_attributes(attr, \"features\") for attr in openml_data_object]\n\n    all_data_description_df = create_combined_information_df(\n        data_id, descriptions, joined_qualities, joined_features\n    )\n    all_dataset_metadata = combine_metadata(\n        all_dataset_metadata, all_data_description_df\n    )\n\n    all_dataset_metadata.to_csv(file_path)\n\n    return (\n        all_dataset_metadata[[\"did\", \"name\", \"Combined_information\"]],\n        all_dataset_metadata,\n    )\n
    "},{"location":"modules/metadata_module/#metadata_utils.process_flow_metadata","title":"process_flow_metadata(openml_data_object, data_id, file_path)","text":"

    Description: Process the flow metadata.

    Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, file_path (str) : The file path

    Returns: The combined metadata dataframe and the updated metadata table.

    Source code in backend/modules/metadata_utils.py
    def process_flow_metadata(openml_data_object: Sequence[openml.flows.flow.OpenMLFlow], data_id: Sequence[int], file_path: str) -> Tuple[pd.DataFrame, pd.DataFrame]:\n    \"\"\"\n    Description: Process the flow metadata.\n\n    Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, file_path (str) : The file path\n\n    Returns: The combined metadata dataframe and the updated metadata table.\n    \"\"\"\n    descriptions = [\n        extract_attribute(attr, \"description\") for attr in openml_data_object\n    ]\n    names = [extract_attribute(attr, \"name\") for attr in openml_data_object]\n    tags = [extract_attribute(attr, \"tags\") for attr in openml_data_object]\n\n    all_data_description_df = pd.DataFrame(\n        {\n            \"did\": data_id,\n            \"description\": descriptions,\n            \"name\": names,\n            \"tags\": tags,\n        }\n    )\n\n    all_data_description_df[\"Combined_information\"] = all_data_description_df.apply(\n        merge_all_columns_to_string, axis=1\n    )\n    all_data_description_df.to_csv(file_path)\n\n    return (\n        all_data_description_df[[\"did\", \"name\", \"Combined_information\"]],\n        all_data_description_df,\n    )\n
    "},{"location":"modules/metadata_module/#metadata_utils.save_metadata_to_file","title":"save_metadata_to_file(data, save_filename)","text":"

    Save metadata to a file.

    Source code in backend/modules/metadata_utils.py
    def save_metadata_to_file(data, save_filename: str):\n    \"\"\"\n    Save metadata to a file.\n    \"\"\"\n    with open(save_filename, \"wb\") as f:\n        pickle.dump(data, f)\n
    "},{"location":"modules/result_gen/","title":"Result gen","text":""},{"location":"modules/result_gen/#results_gen.aggregate_multiple_queries_and_count","title":"aggregate_multiple_queries_and_count(queries, qa_dataset, config, group_cols=['id', 'name'], sort_by='query', count=True)","text":"

    Description: Aggregate the results of multiple queries into a single dataframe and count the number of times a dataset appears in the results

    Input

    queries: List of queries group_cols: List of columns to group by

    Returns: Combined dataframe with the results of all queries

    Source code in backend/modules/results_gen.py
    def aggregate_multiple_queries_and_count(\n    queries, qa_dataset, config, group_cols=[\"id\", \"name\"], sort_by=\"query\", count = True\n) -> pd.DataFrame:\n    \"\"\"\n    Description: Aggregate the results of multiple queries into a single dataframe and count the number of times a dataset appears in the results\n\n    Input:\n        queries: List of queries\n        group_cols: List of columns to group by\n\n    Returns: Combined dataframe with the results of all queries\n    \"\"\"\n    combined_df = pd.DataFrame()\n    for query in tqdm(queries, total=len(queries)):\n        result_data_frame, _ = get_result_from_query(\n            query=query, qa=qa_dataset, type_of_query=\"dataset\", config=config\n        )\n        result_data_frame = result_data_frame[group_cols]\n        # Concat with combined_df with a column to store the query\n        result_data_frame[\"query\"] = query\n        combined_df = pd.concat([combined_df, result_data_frame])\n    if count:\n        combined_df = (\n        combined_df.groupby(group_cols)\n        .count()\n        .reset_index()\n        .sort_values(by=sort_by, ascending=False)\n    )\n\n    return combined_df\n
    "},{"location":"modules/result_gen/#results_gen.check_query","title":"check_query(query)","text":"

    Description: Performs checks on the query - Replaces %20 with space character (browsers do this automatically when spaces are in the URL) - Removes leading and trailing spaces - Limits the query to 150 characters

    Input: query (str)

    Returns: None

    Source code in backend/modules/results_gen.py
    def check_query(query: str) -> str:\n    \"\"\"\n    Description: Performs checks on the query\n    - Replaces %20 with space character (browsers do this automatically when spaces are in the URL)\n    - Removes leading and trailing spaces\n    - Limits the query to 150 characters\n\n    Input: query (str)\n\n    Returns: None\n    \"\"\"\n    if query == \"\":\n        raise ValueError(\"Query cannot be empty.\")\n    query = query.replace(\n        \"%20\", \" \"\n    )  # replace %20 with space character (browsers do this automatically when spaces are in the URL)\n    # query = query.replace(\"dataset\", \"\")\n    # query = query.replace(\"flow\", \"\")\n    query = query.strip()\n    query = query[:200]\n    return query\n
    "},{"location":"modules/result_gen/#results_gen.create_output_dataframe","title":"create_output_dataframe(dict_results, type_of_data, ids_order)","text":"

    Description: Create an output dataframe with the results. The URLs are API calls to the OpenML API for the specific type of data.

    Input: dict_results (dict), type_of_data (str)

    Returns: A dataframe with the results and duplicate names removed.

    Source code in backend/modules/results_gen.py
    def create_output_dataframe(dict_results: dict, type_of_data: str, ids_order: list) -> pd.DataFrame:\n    \"\"\"\n    Description: Create an output dataframe with the results. The URLs are API calls to the OpenML API for the specific type of data.\n\n    Input: dict_results (dict), type_of_data (str)\n\n    Returns: A dataframe with the results and duplicate names removed.\n    \"\"\"\n    output_df = pd.DataFrame(dict_results).T.reset_index()\n    # order the rows based on the order of the ids\n    output_df[\"index\"] = output_df[\"index\"].astype(int)\n    output_df = output_df.set_index(\"index\").loc[ids_order].reset_index()\n    # output_df[\"urls\"] = output_df[\"index\"].apply(\n    #     lambda x: f\"https://www.openml.org/api/v1/json/{type_of_data}/{x}\"\n    # )\n    # https://www.openml.org/search?type=data&sort=runs&status=any&id=31\n    output_df[\"urls\"] = output_df[\"index\"].apply(\n        lambda x: f\"https://www.openml.org/search?type={type_of_data}&id={x}\"\n    )\n    output_df[\"urls\"] = output_df[\"urls\"].apply(make_clickable)\n    # data = openml.datasets.get_dataset(\n    # get rows with unique names\n    if type_of_data == \"data\":\n        output_df[\"command\"] = output_df[\"index\"].apply(\n            lambda x: f\"dataset = openml.datasets.get_dataset({x})\"\n        )\n    elif type_of_data == \"flow\":\n        output_df[\"command\"] = output_df[\"index\"].apply(\n            lambda x: f\"flow = openml.flows.get_flow({x})\"\n        )\n    output_df = output_df.drop_duplicates(subset=[\"name\"])\n    # order the columns\n    output_df = output_df[[\"index\", \"name\", \"command\", \"urls\", \"page_content\"]].rename(\n        columns={\"index\": \"id\", \"urls\": \"OpenML URL\", \"page_content\": \"Description\"}\n    )\n    return output_df\n
    "},{"location":"modules/result_gen/#results_gen.fetch_results","title":"fetch_results(query, qa, type_of_query, config)","text":"

    Description: Fetch results for the query using the QA chain.

    Input: query (str), qa (langchain.chains.retrieval_qa.base.RetrievalQA), type_of_query (str), config (dict)

    Returns: results[\"source_documents\"] (list)

    Source code in backend/modules/results_gen.py
    def fetch_results(query: str, qa: langchain.chains.retrieval_qa.base.RetrievalQA, type_of_query: str, config: dict) -> Sequence[Document]:\n    \"\"\"\n    Description: Fetch results for the query using the QA chain.\n\n    Input: query (str), qa (langchain.chains.retrieval_qa.base.RetrievalQA), type_of_query (str), config (dict)\n\n    Returns: results[\"source_documents\"] (list)\n    \"\"\"\n    results = qa.invoke(\n        input=query,\n        config={\"temperature\": config[\"temperature\"], \"top-p\": config[\"top_p\"]},\n    )\n    if config[\"long_context_reorder\"] == True:\n        results = long_context_reorder(results)\n    id_column = {\"dataset\": \"did\", \"flow\": \"id\", \"data\": \"did\"}\n    id_column = id_column[type_of_query]\n\n    if config[\"reranking\"] == True:\n        try:\n            print(\"[INFO] Reranking results...\")\n            ranker = Ranker(model_name=\"ms-marco-MiniLM-L-12-v2\", cache_dir=\"/tmp/\")\n            rerankrequest = RerankRequest(\n                query=query,\n                passages=[\n                    {\"id\": result.metadata[id_column], \"text\": result.page_content}\n                    for result in results\n                ],\n            )\n            ranking = ranker.rerank(rerankrequest)\n            ids = [result[\"id\"] for result in ranking]\n            ranked_results = [\n                result for result in results if result.metadata[id_column] in ids\n            ]\n            print(\"[INFO] Reranking complete.\")\n            return ranked_results\n        except Exception as e:\n            print(f\"[ERROR] Reranking failed: {e}\")\n            return results\n\n    else:\n        return results\n
    "},{"location":"modules/result_gen/#results_gen.get_result_from_query","title":"get_result_from_query(query, qa, type_of_query, config)","text":"

    Description: Get the result from the query using the QA chain and return the results in a dataframe that is then sent to the frontend.

    Input: query (str), qa (langchain.chains.retrieval_qa.base.RetrievalQA), type_of_query (str)

    Returns: output_df (pd.DataFrame)

    Source code in backend/modules/results_gen.py
    def get_result_from_query(query, qa, type_of_query, config) -> Tuple[pd.DataFrame, Sequence[Document]]:\n    \"\"\"\n    Description: Get the result from the query using the QA chain and return the results in a dataframe that is then sent to the frontend.\n\n    Input: query (str), qa (langchain.chains.retrieval_qa.base.RetrievalQA), type_of_query (str)\n\n    Returns: output_df (pd.DataFrame)\n    \"\"\"\n    if type_of_query == \"dataset\":\n        # Fixing the key_name for dataset because of the way the OpenML API returns the data\n        type_of_query = \"data\"\n    elif type_of_query == \"flow\":\n        type_of_query = \"flow\"\n    else:\n        raise ValueError(f\"Unsupported type_of_data: {type_of_query}\")\n\n    # Process the query\n    query = check_query(query)\n    if query == \"\":\n        return pd.DataFrame(), []\n    source_documents = fetch_results(\n        query, qa, config=config, type_of_query=type_of_query\n    )\n    dict_results, ids_order = process_documents(source_documents)\n    output_df = create_output_dataframe(dict_results, type_of_query, ids_order)\n\n    return output_df, source_documents\n
    "},{"location":"modules/result_gen/#results_gen.long_context_reorder","title":"long_context_reorder(results)","text":"

    Description: Lost in the middle reorder: the less relevant documents will be at the middle of the list and more relevant elements at beginning / end. See: https://arxiv.org/abs//2307.03172

    Input: results (list)

    Returns: reorder results (list)

    Source code in backend/modules/results_gen.py
    def long_context_reorder(results: Sequence[Document]) -> Sequence[Document]:\n    \"\"\"\n    Description: Lost in the middle reorder: the less relevant documents will be at the\n    middle of the list and more relevant elements at beginning / end.\n    See: https://arxiv.org/abs//2307.03172\n\n    Input: results (list)\n\n    Returns: reorder results (list)\n    \"\"\"\n    print(\"[INFO] Reordering results...\")\n    reordering = LongContextReorder()\n    results = reordering.transform_documents(results)\n    print(\"[INFO] Reordering complete.\")\n    return results\n
    "},{"location":"modules/result_gen/#results_gen.make_clickable","title":"make_clickable(val)","text":"

    Description: Make the URL clickable in the dataframe.

    Source code in backend/modules/results_gen.py
    def make_clickable(val : str) -> str:\n    \"\"\"\n    Description: Make the URL clickable in the dataframe.\n    \"\"\"\n    return '<a href=\"{}\">{}</a>'.format(val, val)\n
    "},{"location":"modules/result_gen/#results_gen.process_documents","title":"process_documents(source_documents)","text":"

    Description: Process the source documents and create a dictionary with the key_name as the key and the name and page content as the values.

    Input: source_documents (list), key_name (str)

    Returns: dict_results (dict)

    Source code in backend/modules/results_gen.py
    def process_documents(source_documents : Sequence[Document]) -> Tuple[OrderedDict, list]:\n    \"\"\"\n    Description: Process the source documents and create a dictionary with the key_name as the key and the name and page content as the values.\n\n    Input: source_documents (list), key_name (str)\n\n    Returns: dict_results (dict)\n    \"\"\"\n    dict_results = OrderedDict()\n    for result in source_documents:\n        dict_results[result.metadata[\"did\"]] = {\n            \"name\": result.metadata[\"name\"],\n            \"page_content\": result.page_content,\n        }\n    ids = [result.metadata[\"did\"] for result in source_documents]\n    return dict_results, ids\n
    "}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"RAG pipeline for OpenML","text":"
    • This repository contains the code for the RAG pipeline for OpenML.
    • Project roadmap
    "},{"location":"#getting-started","title":"Getting started","text":"
    • Clone the repository
    • Create a virtual environment and activate it
    • Install the requirements using pip install -r requirements.txt
    • Run training.py (for the first time/to update the model). This takes care of basically everything. (Refer to the training section for more details)
    • Install Ollama (https://ollama.com/) for your machine
    • For a local setup, you can run ./start_local.sh to start Olama, FastAPI and Streamlit servers. The Streamlit server will be available at http://localhost:8501
    • For docker, refer to Docker
    • For a complete usage example refer to pipeline usage
    • Enjoy :)
    "},{"location":"#example-usage","title":"Example usage","text":"
    • Note that in this picture, I am using a very very tiny model for demonstration purposes. The actual results would be a lot better :)
    "},{"location":"#where-do-i-go-from-here","title":"Where do I go from here?","text":""},{"location":"#i-am-a-developer-and-i-want-to-contribute-to-the-project","title":"I am a developer and I want to contribute to the project","text":"
    • Hello! We are glad you are here. To get started, refer to the tutorials in the developer tutorial section.
    • If you have any questions, feel free to ask or post an issue.
    "},{"location":"#i-just-want-to-use-the-pipeline","title":"I just want to use the pipeline","text":"
    • You can use the pipeline by running the Streamlit frontend. Refer to the getting started section above for more details.
    "},{"location":"#i-am-on-the-wrong-page","title":"I am on the wrong page","text":""},{"location":"configuration/","title":"Configuration","text":"
    • The main config file is config.json
    • Possible options are as follows:
    • rqa_prompt_template: The template for the RAG pipeline search prompt. This is used by the model to query the database.
    • llm_prompt_template: The template for the summary generator LLM prompt.
    • num_return_documents: Number of documents to return for a query. Too high a number can lead to Out of Memory errors. (Defaults to 50)
    • embedding_model: The model to use for generating embeddings. This is used to generate embeddings for the documents as a means of comparison using the LLM's embeddings. (Defaults to BAAI/bge-large-en-v1.5)
      • Other possible tested models
        • BAAI/bge-base-en-v1.5
        • BAAI/bge-large-en-v1.5
        • WhereIsAI/UAE-Large-V1
    • llm_model: The model used for generating the result summary. (Defaults to qwen2:1.5b)
    • data_dir: The directory to store the intermediate data like tables/databases etc. (Defaults to ./data/)
    • persist_dir: The directory to store the cached data. Defaults to ./data/chroma_db/ and stores the embeddings for the documents with a unique hash. (Defaults to ./data/chroma_db/)
    • testing_flag: Enables testing mode by using subsets of the data for quick debugging. This is used to test the pipeline and is not recommended for normal use. (Defaults to False)
    • data_download_n_jobs: Number of jobs to run in parallel for downloading data. (Defaults to 20)
    • training: Whether to train the model or not. (Defaults to False) this is automatically set to True when when running the training.py script. Do NOT set this to True manually.
    • search_type : The type of vector comparison to use. (Defaults to \"similarity\")
    • reraanking: Whether to rerank the results using the FlashRank algorithm. (Defaults to False)
    • long_context_reordering: Whether to reorder the results using the Long Context Reordering algorithm. (Defaults to False)
    "},{"location":"docker/","title":"Docker container","text":""},{"location":"docker/#building","title":"Building","text":"
    • Run docker compose build --progress=plain
    "},{"location":"docker/#running","title":"Running","text":"
    • Run ./start_docker.sh
    • This uses the docker compose file to run the docker process in the background.
    • The required LLM model is also pulled from the docker hub and the container is started.
    "},{"location":"docker/#stopping","title":"Stopping","text":"
    • Run ./stop_docker.sh
    "},{"location":"docker/#potential-errors","title":"Potential Errors","text":"
    • Permission errors : Run chmod +x *.sh
    • If you get a memory error you can run docker system prune. Please be careful with this command as it will remove all stopped containers, all dangling images, and all unused networks. So ensure you have no important data in any of the containers before running this command.
    • On docker desktop for Mac, increase memory limits to as much as your system can handle.
    "},{"location":"inference/","title":"Inference","text":"
    • Just run ./start_local.sh and it will take care of everything.
    • The UI should either pop up or you can navigate to http://localhost:8501/ in your browser.
    • Note that it takes a decent bit of time to load everything. (Approximately 10-15 mins on a decent Macbook Pro, and much slower with Docker)
    "},{"location":"inference/#stopping","title":"Stopping","text":"
    • Run ./stop_local.sh
    • ./start_local.sh stores the PIDs of all the processes it starts in files in all the directories it starts them in. stop_local.sh reads these files and kills the processes.
    "},{"location":"inference/#errors","title":"Errors","text":"
    • If you get an error about file permissions, run chmod +x start_local.sh and chmod +x stop_local.sh to make them executable.
    "},{"location":"testing/","title":"Testing","text":""},{"location":"testing/#unit-testing","title":"Unit Testing","text":"
    • Run python -m unittest tests/unit_testing.py to run the unit tests.
    "},{"location":"testing/#load-testing","title":"Load Testing","text":"
    • Load testing can be done using Locust, a load testing tool that allows you to simulate users querying the API and measure the performance of the API under load from numerous users.
    • It is possible to configure the number of users, the hatch rate, and the time to run the test for.
    "},{"location":"testing/#running-the-load-test","title":"Running the load test","text":"
    • Start the FastAPI server using uvicorn main:app (or ./start_local.sh )
    • Load testing using Locust (locust -f tests/locust_test.py --host http://127.0.0.1:8000 ) using a different terminal
    "},{"location":"testing/#all-tests","title":"All tests","text":"

    Bases: TestCase

    Source code in tests/unit_testing.py
    class TestConfig(unittest.TestCase):\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n        self.client = chromadb.PersistentClient(path=config[\"persist_dir\"])\n        self.config_keys = [\"rqa_prompt_template\", \"llm_prompt_template\",\n        \"num_return_documents\", \"embedding_model\", \"llm_model\", \"num_documents_for_llm\", \"data_dir\", \"persist_dir\", \"testing_flag\", \"ignore_downloading_data\", \"test_subset_2000\", \"data_download_n_jobs\", \"training\", \"temperature\", \"top_p\", \"search_type\", \"reranking\", \"long_context_reorder\"]\n        self.query_test_dict = {\n            \"dataset\": \"Find me a dataset about flowers that has a high number of instances.\",\n            \"flow\": \"Find me a flow that uses the RandomForestClassifier.\",\n        }\n    def test_check_data_dirs(self):\n        \"\"\"\n        Description: Check if the data directory exists.\n        Returns: None\n        \"\"\"\n        self.assertTrue(os.path.exists(config[\"data_dir\"]))\n        self.assertTrue(os.path.exists(config[\"persist_dir\"]))\n\n    def test_config(self):\n        \"\"\"\n        Description: Check if the config has the required keys.\n        Returns: None\n        \"\"\"\n        for key in self.config_keys:\n            self.assertIn(key, config.keys())\n\n    def test_setup_vector_db_and_qa(self):\n        \"\"\"\n        Description: Check if the setup_vector_db_and_qa function works as expected.\n        Returns: None\n        \"\"\"\n        for type_of_data in [\"dataset\", \"flow\"]:\n            self.qa = setup_vector_db_and_qa(\n                config=config, data_type=type_of_data, client=self.client\n            )\n            self.assertIsNotNone(self.qa)\n            self.result_data_frame = get_result_from_query(\n                query=self.query_test_dict[type_of_data],\n                qa=self.qa,\n                type_of_query=type_of_data,\n                config=config,\n            )\n            self.assertIsNotNone(self.result_data_frame)\n
    "},{"location":"testing/#unit_testing.TestConfig.test_check_data_dirs","title":"test_check_data_dirs()","text":"

    Description: Check if the data directory exists. Returns: None

    Source code in tests/unit_testing.py
    def test_check_data_dirs(self):\n    \"\"\"\n    Description: Check if the data directory exists.\n    Returns: None\n    \"\"\"\n    self.assertTrue(os.path.exists(config[\"data_dir\"]))\n    self.assertTrue(os.path.exists(config[\"persist_dir\"]))\n
    "},{"location":"testing/#unit_testing.TestConfig.test_config","title":"test_config()","text":"

    Description: Check if the config has the required keys. Returns: None

    Source code in tests/unit_testing.py
    def test_config(self):\n    \"\"\"\n    Description: Check if the config has the required keys.\n    Returns: None\n    \"\"\"\n    for key in self.config_keys:\n        self.assertIn(key, config.keys())\n
    "},{"location":"testing/#unit_testing.TestConfig.test_setup_vector_db_and_qa","title":"test_setup_vector_db_and_qa()","text":"

    Description: Check if the setup_vector_db_and_qa function works as expected. Returns: None

    Source code in tests/unit_testing.py
    def test_setup_vector_db_and_qa(self):\n    \"\"\"\n    Description: Check if the setup_vector_db_and_qa function works as expected.\n    Returns: None\n    \"\"\"\n    for type_of_data in [\"dataset\", \"flow\"]:\n        self.qa = setup_vector_db_and_qa(\n            config=config, data_type=type_of_data, client=self.client\n        )\n        self.assertIsNotNone(self.qa)\n        self.result_data_frame = get_result_from_query(\n            query=self.query_test_dict[type_of_data],\n            qa=self.qa,\n            type_of_query=type_of_data,\n            config=config,\n        )\n        self.assertIsNotNone(self.result_data_frame)\n
    "},{"location":"training/","title":"Training","text":"
    • While we are not creating a new model, we are using the existing model to create embeddings. The name might be misleading but this was chosen as an attempt to keep the naming consistent with other codebases.
    • (Perhaps we might fine tune the model in the future)
    • The training script is present in training.py. Running this script will take care of everything.
    "},{"location":"training/#what-does-the-training-script-do","title":"What does the training script do?","text":"
    • Load the config file and set the necessary variables
    • If testing_flag is set to True, the script will use a subset of the data for quick debugging
    • testing_flag is set to True
    • persist_dir is set to ./data/chroma_db_testing
    • test_subset_2000 is set to True
    • data_dir is set to ./data/testing_data/
    • If testing_flag is set to False, the script will use the entire dataset
    • For all datasets in the OpenML dataset list:
    • Download the dataset
    • Create the vector dataset with computed embeddings
    • Create a vectordb retriever
    • Run some test queries
    "},{"location":"developer%20tutorials/","title":"Developer Tutorials","text":"
    • Hello there, future OpenML contributor! It is nice meeting you here. This page is a collection of tutorials that will help you get started with contributing to the OpenML RAG pipeline.
    • The tutorials show you how to perform common tasks and should make it a lot easier to get started with contributing to this project.
    • Note that you would have had to setup the project before you begin. If you missed this step, please refer to index
    "},{"location":"developer%20tutorials/change%20model/","title":"Change model","text":"
    from __future__ import annotations\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\nimport chromadb\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.utils import load_config_and_device\nfrom modules.llm import setup_vector_db_and_qa\n
    config = load_config_and_device(\"../../backend/config.json\")\nconfig[\"persist_dir\"] = \"../backend/data/chroma_db/\"\nconfig[\"data_dir\"] = \"../backend/data/\"\nconfig[\"type_of_data\"] = \"dataset\"\nconfig[\"training\"] = True\n# load the persistent database using ChromaDB\nclient = chromadb.PersistentClient(path=config[\"persist_dir\"])\nprint(config)\n
    \n[INFO] Finding device.\n[INFO] Device found: cpu\n{'rqa_prompt_template': 'This database is a list of metadata. Use the following pieces of context to find the relevant document. Answer only from the context given using the {question} given. If you do not know the answer, say you do not know. {context}', 'llm_prompt_template': 'The following is a set of documents {docs}. Based on these docs, please summarize the content concisely. Also give a list of main concepts found in the documents. Do not add any new information. Helpful Answer: ', 'num_return_documents': 50, 'embedding_model': 'BAAI/bge-large-en-v1.5', 'llm_model': 'qwen2:1.5b', 'num_documents_for_llm': 10, 'data_dir': '../backend/data/', 'persist_dir': '../backend/data/chroma_db/', 'testing_flag': False, 'ignore_downloading_data': False, 'test_subset_2000': False, 'data_download_n_jobs': 20, 'training': True, 'temperature': 0.95, 'top_p': 0.95, 'search_type': 'similarity', 'reranking': False, 'long_context_reorder': False, 'device': 'cpu', 'type_of_data': 'dataset'}\n\n
    config[\"embedding_model\"] = \"HuggingFaceH4/capybara\"\n
    • Pick a model from Ollama - https://ollama.com/library?sort=popular
    • eg : mistral
    config[\"llm_model\"] = \"mistral\"\n
    qa = setup_vector_db_and_qa(\n        config=config, data_type=config[\"type_of_data\"], client=client\n    )\n
    "},{"location":"developer%20tutorials/change%20model/#tutorial-on-changing-models","title":"Tutorial on changing models","text":"
    • How would you use a different embedding and llm model?
    "},{"location":"developer%20tutorials/change%20model/#initial-config","title":"Initial config","text":""},{"location":"developer%20tutorials/change%20model/#embedding-model","title":"Embedding model","text":"
    • Pick a model from HF
    "},{"location":"developer%20tutorials/change%20model/#llm-model","title":"LLM model","text":""},{"location":"developer%20tutorials/change%20model/#important","title":"IMPORTANT","text":"
    • Do NOT forget to change the model to the best model in ollama/get_ollama.sh
    "},{"location":"developer%20tutorials/create%20vectordb/","title":"Create vectordb","text":"
    from __future__ import annotations\nfrom langchain.globals import set_llm_cache\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\nimport chromadb\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.utils import get_all_metadata_from_openml, create_metadata_dataframe, load_config_and_device\nfrom modules.llm import load_document_and_create_vector_store, setup_vector_db_and_qa\n
    config = load_config_and_device(\"../../backend/config.json\")\nconfig[\"persist_dir\"] = \"../backend/data/chroma_db/\"\nconfig[\"data_dir\"] = \"../backend/data/\"\nconfig[\"type_of_data\"] = \"dataset\"\nconfig[\"training\"] = True\n\n# load the persistent database using ChromaDB\nclient = chromadb.PersistentClient(path=config[\"persist_dir\"])\nprint(config)\n
    \n[INFO] Finding device.\n[INFO] Device found: cpu\n{'rqa_prompt_template': 'This database is a list of metadata. Use the following pieces of context to find the relevant document. Answer only from the context given using the {question} given. If you do not know the answer, say you do not know. {context}', 'llm_prompt_template': 'The following is a set of documents {docs}. Based on these docs, please summarize the content concisely. Also give a list of main concepts found in the documents. Do not add any new information. Helpful Answer: ', 'num_return_documents': 50, 'embedding_model': 'BAAI/bge-large-en-v1.5', 'llm_model': 'qwen2:1.5b', 'num_documents_for_llm': 10, 'data_dir': '../backend/data/', 'persist_dir': '../backend/data/chroma_db/', 'testing_flag': False, 'ignore_downloading_data': False, 'test_subset_2000': False, 'data_download_n_jobs': 20, 'training': True, 'temperature': 0.95, 'top_p': 0.95, 'search_type': 'similarity', 'reranking': False, 'long_context_reorder': False, 'device': 'cpu', 'type_of_data': 'dataset'}\n\n
    # Download the data if it does not exist\nopenml_data_object, data_id, all_metadata = get_all_metadata_from_openml(\n    config=config\n)\n# Create the combined metadata dataframe\nmetadata_df, all_metadata = create_metadata_dataframe(\n    openml_data_object, data_id, all_metadata, config=config\n)\n# Create the vector store\nvectordb = load_document_and_create_vector_store(\n    metadata_df, config=config, chroma_client=client\n)\n
    qa = setup_vector_db_and_qa(\n        config=config, data_type=config[\"type_of_data\"], client=client\n    )\n
    "},{"location":"developer%20tutorials/create%20vectordb/#tutorial-on-creating-a-vector-database-with-openml-objects","title":"Tutorial on creating a vector database with openml objects","text":"
    • How would you use the API to create a vector database with openml objects (datasets, flows etc)
    "},{"location":"developer%20tutorials/create%20vectordb/#manually","title":"Manually","text":""},{"location":"developer%20tutorials/create%20vectordb/#api","title":"API","text":""},{"location":"developer%20tutorials/get%20an%20llm%20summary/","title":"Get an llm summary","text":"
    from __future__ import annotations\nfrom langchain.globals import set_llm_cache\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.llm import get_llm_chain, get_llm_result_from_string\nfrom modules.utils import load_config_and_device\n
    # Config and DB\n\n# load the configuration and device\nconfig = load_config_and_device(\"../../backend/config.json\")\nconfig[\"persist_dir\"] = \"../../backend/data/chroma_db/\"\nconfig[\"data_dir\"] = \"../../backend/data/\"\n
    \n[INFO] Finding device.\n[INFO] Device found: cpu\n\n
    config[\"llm_prompt_template\"] = \"The following is a set of documents {docs}. Based on these docs, please summarize the content concisely. Also give a list of main concepts found in the documents. Do not add any new information. Helpful Answer: \"\nconfig[\"llm_model\"] = \"qwen2:1.5b\"\n
    # get the llm chain and set the cache\nllm_chain = get_llm_chain(config=config, local=True)\n# use os path to ensure compatibility with all operating systems\nset_llm_cache(SQLiteCache(database_path=os.path.join(config[\"data_dir\"], \".langchain.db\")))\n
    get_llm_result_from_string(llm_chain, \"This document is about eating disorders and this one is about eating nice food\")\n
    \n'Eating Disorders\\n\\n- Eating disorders refer to psychological and emotional conditions characterized by compulsive behaviors such as overeating or excessive restriction.\\n- These behaviors lead to significant weight loss, malnutrition, and serious health complications.\\n\\nEating Nice Food\\n\\n- This document focuses on the importance of eating good food for maintaining a healthy and balanced diet.\\n- It highlights how selecting nutrient-dense foods can aid in overall physical and mental well-being.'\n
    "},{"location":"developer%20tutorials/get%20an%20llm%20summary/#getting-an-llm-summary-using-the-api","title":"Getting an LLM summary using the API","text":"
    • How would you use the API and an LLM model + prompt to generate a summary of the results obtained from the RAG pipeline?
    "},{"location":"developer%20tutorials/get%20an%20llm%20summary/#get-llm-summary-of-a-string","title":"Get LLM summary of a string","text":"
    • Ensure that Ollama is running before this works bash ollama/.get_ollama.sh (or use the desktop Ollama app for testing)
    • As you can tell, the data needs to be a string. To then get the results from a bunch of langchain documents, you must first concatenate the text you care about into a single string.
    "},{"location":"developer%20tutorials/load%20vectordb%20and%20get%20results/","title":"Load vectordb and get results","text":"
    from __future__ import annotations\nfrom langchain.globals import set_llm_cache\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\nimport chromadb\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.utils import load_config_and_device\nfrom modules.llm import setup_vector_db_and_qa\nfrom modules.results_gen import get_result_from_query\n
    # Config and DB\n\n# load the configuration and device\nconfig = load_config_and_device(\"../../backend/config.json\")\nconfig[\"persist_dir\"] = \"../../backend/data/chroma_db/\"\nconfig[\"data_dir\"] = \"../../backend/data/\"\n
    \n[INFO] Finding device.\n[INFO] Device found: cpu\n\n
    # load the persistent database using ChromaDB\nclient = chromadb.PersistentClient(path=config[\"persist_dir\"])\n
    # Setup llm chain, initialize the retriever and llm, and setup Retrieval QA\nqa_dataset = setup_vector_db_and_qa(config=config, data_type=\"dataset\", client=client)\n
    \n[INFO] Loading metadata from file.\n[INFO] Loading model...\n\n
    \n/Users/eragon/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n  warnings.warn(\n\n
    \n[INFO] Model loaded.\n\n
    query = \"give me datasets about mushrooms\"\n
    res = qa_dataset.invoke(input = query, top_k=5)[:10]\nres\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n[Document(page_content='### **Dataset Details**\\n![](https://meta-album.github.io/assets/img/samples/FNG.png)\\n\\n**Meta Album ID**: PLT.FNG  \\n**Meta Album URL**: [https://meta-album.github.io/datasets/FNG.html](https://meta-album.github.io/datasets/FNG.html)  \\n**Domain ID**: PLT  \\n**Domain Name**: Plants  \\n**Dataset ID**: FNG  \\n**Dataset Name**: Fungi  \\n**Short Description**: Fungi dataset from Denmark  \\n**\\\\# Classes**: 25  \\n**\\\\# Images**: 15122  \\n**Keywords**: fungi, ecology, plants  \\n**Data Format**: images  \\n**Image size**: 128x128  \\n\\n**License (original data release)**: BSD-3-Clause License  \\n**License URL(original data release)**: https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE\\n \\n**License (Meta-Album data release)**: BSD-3-Clause License  \\n**License URL (Meta-Album data release)**: [https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE](https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE)', metadata={'did': 44335, 'name': 'Meta_Album_FNG_Extended'}),\n Document(page_content='### **Dataset Details**\\n![](https://meta-album.github.io/assets/img/samples/FNG.png)\\n\\n**Meta Album ID**: PLT.FNG  \\n**Meta Album URL**: [https://meta-album.github.io/datasets/FNG.html](https://meta-album.github.io/datasets/FNG.html)  \\n**Domain ID**: PLT  \\n**Domain Name**: Plants  \\n**Dataset ID**: FNG  \\n**Dataset Name**: Fungi  \\n**Short Description**: Fungi dataset from Denmark  \\n**\\\\# Classes**: 25  \\n**\\\\# Images**: 1000  \\n**Keywords**: fungi, ecology, plants  \\n**Data Format**: images  \\n**Image size**: 128x128  \\n\\n**License (original data release)**: BSD-3-Clause License  \\n**License URL(original data release)**: https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE\\n \\n**License (Meta-Album data release)**: BSD-3-Clause License  \\n**License URL (Meta-Album data release)**: [https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE](https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE)', metadata={'did': 44302, 'name': 'Meta_Album_FNG_Mini'}),\n Document(page_content=\"### Description\\n\\nThis dataset describes mushrooms in terms of their physical characteristics. They are classified into: poisonous or edible.\\n\\n### Source\\n```\\n(a) Origin: \\nMushroom records are drawn from The Audubon Society Field Guide to North American Mushrooms (1981). G. H. Lincoff (Pres.), New York: Alfred A. Knopf \\n\\n(b) Donor: \\nJeff Schlimmer (Jeffrey.Schlimmer '@' a.gp.cs.cmu.edu)\\n```\\n\\n### Dataset description\\n\\nThis dataset includes descriptions of hypothetical samples corresponding to 23 species of gilled mushrooms in the Agaricus and Lepiota Family. Each species is identified as definitely edible, definitely poisonous, or of unknown edibility and not recommended. This latter class was combined with the poisonous one. The Guide clearly states that there is no simple rule for determining the edibility of a mushroom; no rule like ``leaflets three, let it be'' for Poisonous Oak and Ivy.\", metadata={'did': 24, 'name': 'mushroom'}),\n Document(page_content='### **Dataset Details**\\n![](https://meta-album.github.io/assets/img/samples/FNG.png)\\n\\n**Meta Album ID**: PLT.FNG  \\n**Meta Album URL**: [https://meta-album.github.io/datasets/FNG.html](https://meta-album.github.io/datasets/FNG.html)  \\n**Domain ID**: PLT  \\n**Domain Name**: Plants  \\n**Dataset ID**: FNG  \\n**Dataset Name**: Fungi  \\n**Short Description**: Fungi dataset from Denmark  \\n**\\\\# Classes**: 20  \\n**\\\\# Images**: 800  \\n**Keywords**: fungi, ecology, plants  \\n**Data Format**: images  \\n**Image size**: 128x128  \\n\\n**License (original data release)**: BSD-3-Clause License  \\n**License URL(original data release)**: https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE\\n \\n**License (Meta-Album data release)**: BSD-3-Clause License  \\n**License URL (Meta-Album data release)**: [https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE](https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE)', metadata={'did': 44272, 'name': 'Meta_Album_FNG_Micro'}),\n Document(page_content='**Source**: Danish Fungi Dataset  \\n**Source URL**: https://sites.google.com/view/danish-fungi-dataset  \\n  \\n**Original Author**: Lukas Picek, Milan Sulc, Jiri Matas, Jacob Heilmann-Clausen, Thomas S. Jeppesen, Thomas Laessoe, Tobias Froslev  \\n**Original contact**: lukaspicek@gmail.com  \\n\\n**Meta Album author**: Felix Herron  \\n**Created Date**: 01 March 2022  \\n**Contact Name**: Ihsan Ullah  \\n**Contact Email**: meta-album@chalearn.org  \\n**Contact URL**: [https://meta-album.github.io/](https://meta-album.github.io/)  \\n\\n\\n\\n### **Cite this dataset**\\n```\\n@article{picek2021danish,\\n    title={Danish Fungi 2020 - Not Just Another Image Recognition Dataset},\\n    author={Lukas Picek and Milan Sulc and Jiri Matas and Jacob Heilmann-Clausen and Thomas S. Jeppesen and Thomas Laessoe and Tobias Froslev},\\n    year={2021},\\n    eprint={2103.10107},\\n    archivePrefix={arXiv},\\n    primaryClass={cs.CV}\\n}\\n```', metadata={'did': 44272, 'name': 'Meta_Album_FNG_Micro'}),\n Document(page_content='did - 24, name - mushroom, version - 1, uploader - 1, status - active, format - ARFF, MajorityClassSize - 4208.0, MaxNominalAttDistinctValues - 12.0, MinorityClassSize - 3916.0, NumberOfClasses - 2.0, NumberOfFeatures - 23.0, NumberOfInstances - 8124.0, NumberOfInstancesWithMissingValues - 2480.0, NumberOfMissingValues - 2480.0, NumberOfNumericFeatures - 0.0, NumberOfSymbolicFeatures - 23.0, description - **Author**: [Jeff Schlimmer](Jeffrey.Schlimmer@a.gp.cs.cmu.edu)  \\n**Source**: [UCI](https://archive.ics.uci.edu/ml/datasets/mushroom) - 1981     \\n**Please cite**:  The Audubon Society Field Guide to North American Mushrooms (1981). G. H. Lincoff (Pres.), New York: Alfred A. Knopf \\n\\n\\n### Description\\n\\nThis dataset describes mushrooms in terms of their physical characteristics. They are classified into: poisonous or edible.', metadata={'did': 24, 'name': 'mushroom'}),\n Document(page_content='Meta-Album Fungi dataset is created by sampling the Danish Fungi 2020 dataset(https://arxiv.org/abs/2103.10107), itself a sampling of the Atlas of Danish Fungi repository. The images and labels which enter this database are sourced by a group consisting of 3 300 citizen botanists, then verified by their peers using a ranking of each person reliability, then finally verified by experts working at the Atlas. Of the 128 classes in the original Danish Fungi 2020 dataset, FNG retains the 25 most populous classes, belonging to six genera, for a total of 15 122 images total, with min 372, and max 1 221 images per class. Each image contains a colored 128x128 image of a fungus or a piece of a fungus from the corresponding class. Because the initial data were of widely varying sizes, we needed to crop a significant portion of the images, which we implemented by taking the largest possible square with center at the middle of the initial image. We then scaled each squared image to the 128x128', metadata={'did': 44272, 'name': 'Meta_Album_FNG_Micro'}),\n Document(page_content='did - 44272, name - Meta_Album_FNG_Micro, version - 1, uploader - 30980, status - active, format - arff, MajorityClassSize - 40.0, MaxNominalAttDistinctValues - nan, MinorityClassSize - 40.0, NumberOfClasses - 20.0, NumberOfFeatures - 3.0, NumberOfInstances - 800.0, NumberOfInstancesWithMissingValues - 0.0, NumberOfMissingValues - 0.0, NumberOfNumericFeatures - 0.0, NumberOfSymbolicFeatures - 0.0, description - ## **Meta-Album Fungi Dataset (Micro)**\\n***', metadata={'did': 44272, 'name': 'Meta_Album_FNG_Micro'}),\n Document(page_content='did - 44335, name - Meta_Album_FNG_Extended, version - 1, uploader - 30980, status - active, format - arff, MajorityClassSize - 1221.0, MaxNominalAttDistinctValues - nan, MinorityClassSize - 372.0, NumberOfClasses - 25.0, NumberOfFeatures - 3.0, NumberOfInstances - 15122.0, NumberOfInstancesWithMissingValues - 0.0, NumberOfMissingValues - 0.0, NumberOfNumericFeatures - 0.0, NumberOfSymbolicFeatures - 0.0, description - ## **Meta-Album Fungi Dataset (Extended)**\\n***', metadata={'did': 44335, 'name': 'Meta_Album_FNG_Extended'}),\n Document(page_content='did - 43922, name - mushroom, version - 3, uploader - 30861, status - active, format - ARFF, MajorityClassSize - 4208.0, MaxNominalAttDistinctValues - nan, MinorityClassSize - 3916.0, NumberOfClasses - 2.0, NumberOfFeatures - 23.0, NumberOfInstances - 8124.0, NumberOfInstancesWithMissingValues - 0.0, NumberOfMissingValues - 0.0, NumberOfNumericFeatures - 0.0, NumberOfSymbolicFeatures - 23.0, description - Mushroom records drawn from The Audubon Society Field Guide to North American Mushrooms (1981). G. H. Lincoff (Pres.), New York: Alfred A. Knopf, qualities - AutoCorrelation : 0.726332635725717, Dimensionality : 0.002831117676021664, MajorityClassPercentage : 51.7971442639094, MajorityClassSize : 4208.0, MinorityClassPercentage : 48.20285573609059, MinorityClassSize : 3916.0, NumberOfBinaryFeatures : 6.0, NumberOfClasses : 2.0, NumberOfFeatures : 23.0, NumberOfInstances : 8124.0, NumberOfInstancesWithMissingValues : 0.0, NumberOfMissingValues : 0.0, NumberOfNumericFeatures : 0.0,', metadata={'did': 43922, 'name': 'mushroom'})]\n
    res[0].metadata\n
    \n{'did': 44335, 'name': 'Meta_Album_FNG_Extended'}\n
    print(res[0].page_content)\n
    \n### **Dataset Details**\n![](https://meta-album.github.io/assets/img/samples/FNG.png)\n\n**Meta Album ID**: PLT.FNG  \n**Meta Album URL**: [https://meta-album.github.io/datasets/FNG.html](https://meta-album.github.io/datasets/FNG.html)  \n**Domain ID**: PLT  \n**Domain Name**: Plants  \n**Dataset ID**: FNG  \n**Dataset Name**: Fungi  \n**Short Description**: Fungi dataset from Denmark  \n**\\# Classes**: 25  \n**\\# Images**: 15122  \n**Keywords**: fungi, ecology, plants  \n**Data Format**: images  \n**Image size**: 128x128  \n\n**License (original data release)**: BSD-3-Clause License  \n**License URL(original data release)**: https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE\n\n**License (Meta-Album data release)**: BSD-3-Clause License  \n**License URL (Meta-Album data release)**: [https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE](https://github.com/picekl/DanishFungiDataset/blob/main/LICENSE)\n\n
    # Fetch the result data frame based on the query\nresult_data_frame, result_documents = get_result_from_query(\n    query=query, qa=qa_dataset, type_of_query=\"dataset\", config=config\n)\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    result_data_frame.head()\n
    id name command OpenML URL Description 0 44335 Meta_Album_FNG_Extended dataset = openml.datasets.get_dataset(44335) <a href=\"https://www.openml.org/search?type=da... did - 44335, name - Meta_Album_FNG_Extended, v... 1 44302 Meta_Album_FNG_Mini dataset = openml.datasets.get_dataset(44302) <a href=\"https://www.openml.org/search?type=da... ### **Dataset Details**\\n![](https://meta-albu... 2 24 mushroom dataset = openml.datasets.get_dataset(24) <a href=\"https://www.openml.org/search?type=da... did - 24, name - mushroom, version - 1, upload... 3 44272 Meta_Album_FNG_Micro dataset = openml.datasets.get_dataset(44272) <a href=\"https://www.openml.org/search?type=da... did - 44272, name - Meta_Album_FNG_Micro, vers... 10 1558 bank-marketing dataset = openml.datasets.get_dataset(1558) <a href=\"https://www.openml.org/search?type=da... * Dataset:"},{"location":"developer%20tutorials/load%20vectordb%20and%20get%20results/#load-the-chroma-db-and-get-retrieval-results-for-a-given-query","title":"Load the Chroma Db and get retrieval results for a given query","text":"
    • How would you load the Chroma Db and get retrieval results for a given query?
    "},{"location":"developer%20tutorials/load%20vectordb%20and%20get%20results/#just-get-documents","title":"Just get documents","text":""},{"location":"developer%20tutorials/load%20vectordb%20and%20get%20results/#process-the-results-and-return-a-dataframe-instead","title":"Process the results and return a dataframe instead","text":""},{"location":"developer%20tutorials/run%20multiple%20queries%20and%20aggregate/","title":"Run multiple queries and aggregate","text":"
    from __future__ import annotations\nfrom langchain.globals import set_llm_cache\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\nimport chromadb\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.utils import load_config_and_device\nfrom modules.llm import setup_vector_db_and_qa\nfrom modules.results_gen import aggregate_multiple_queries_and_count\n
    # Config and DB\n\n# load the configuration and device\nconfig = load_config_and_device(\"../../backend/config.json\")\nconfig[\"persist_dir\"] = \"../../backend/data/chroma_db/\"\nconfig[\"data_dir\"] = \"../../backend/data/\"\n
    \n[INFO] Finding device.\n[INFO] Device found: cpu\n\n
    # load the persistent database using ChromaDB\nclient = chromadb.PersistentClient(path=config[\"persist_dir\"])\n
    # Setup llm chain, initialize the retriever and llm, and setup Retrieval QA\nqa_dataset = setup_vector_db_and_qa(config=config, data_type=\"dataset\", client=client)\n
    \n[INFO] Loading metadata from file.\n[INFO] Loading model...\n\n
    \n/Users/eragon/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n  warnings.warn(\n\n
    \n[INFO] Model loaded.\n\n
    queries = [\"Find datasets related to COVID-19\", \"Find datasets related to COVID-19 and India\", \"COVID-19 dataset\", \"COVID-19 dataset India\", \"Mexico historical covid\"]\ncombined_df = aggregate_multiple_queries_and_count(queries,qa_dataset=qa_dataset, config=config, group_cols = [\"id\", \"name\"], sort_by=\"query\", count = True)\n
    \n  0%|          | 0/5 [00:00<?, ?it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 20%|\u2588\u2588        | 1/5 [00:02<00:08,  2.14s/it]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 40%|\u2588\u2588\u2588\u2588      | 2/5 [00:02<00:03,  1.17s/it]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:03<00:01,  1.14it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:03<00:00,  1.32it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:03<00:00,  1.26it/s]\n\n
    combined_df.head()\n
    id name query 36 43495 COVID-19-Mexico-Clean--Order-by-States 4 52 43844 Coronavirus-Worldwide-Dataset 4 26 43349 COVID-19-World-Vaccination-Progress 4 27 43365 Covid-19-Case-Surveillance-Public-Use-Dataset 4 28 43367 COVID-19-Indonesia-Dataset 4
    queries = [\"Find datasets related to COVID-19\", \"Find datasets related to COVID-19 and India\", \"COVID-19 dataset\", \"COVID-19 dataset India\", \"Mexico historical covid\"]\ncombined_df = aggregate_multiple_queries_and_count(queries,qa_dataset=qa_dataset, config=config, group_cols = [\"id\", \"name\"], sort_by=\"query\", count = False)\n
    \n  0%|          | 0/5 [00:00<?, ?it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 20%|\u2588\u2588        | 1/5 [00:00<00:02,  1.43it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 40%|\u2588\u2588\u2588\u2588      | 2/5 [00:01<00:01,  1.99it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:01<00:01,  1.50it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n 80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:02<00:00,  1.85it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:02<00:00,  2.01it/s]\n\n
    combined_df.head()\n
    id name query 0 43410 Coronavirus-Disease-(COVID-19) Find datasets related to COVID-19 1 43412 COVID-19-Visualisation-and-Epidemic-Analysis-Data Find datasets related to COVID-19 2 43365 Covid-19-Case-Surveillance-Public-Use-Dataset Find datasets related to COVID-19 3 43367 COVID-19-Indonesia-Dataset Find datasets related to COVID-19 4 43684 COVID-19-Stats-and-Mobility-Trends Find datasets related to COVID-19
    \nThe Kernel crashed while executing code in the current cell or a previous cell. \n\nPlease review the code in the cell(s) to identify a possible cause of the failure. \n\nClick <a href='https://aka.ms/vscodeJupyterKernelCrash'>here</a> for more info. \n\nView Jupyter <a href='command:jupyter.viewOutput'>log</a> for further details.
    "},{"location":"developer%20tutorials/run%20multiple%20queries%20and%20aggregate/#aggregate-results","title":"Aggregate results","text":""},{"location":"developer%20tutorials/run%20multiple%20queries%20and%20aggregate/#just-collate","title":"Just collate","text":""},{"location":"developer%20tutorials/train%20and%20evaluate%20models/","title":"Train and evaluate models","text":"
    from __future__ import annotations\nfrom langchain_community.cache import SQLiteCache\nimport os\nimport sys\nimport chromadb\nfrom pathlib import Path\nfrom tqdm import tqdm\n\nimport pandas as pd\n# change the path to the backend directory\nsys.path.append(os.path.join(os.path.dirname(\".\"), '../../backend/'))\n
    from modules.utils import load_config_and_device\nfrom modules.llm import setup_vector_db_and_qa\nfrom modules.results_gen import aggregate_multiple_queries_and_count\n
    new_path = Path(\"../../backend/\")\n\nconfig = load_config_and_device(str(new_path / \"config.json\"), training = True)\n\nconfig[\"type_of_data\"] = \"dataset\"\nconfig[\"training\"] = True\n
    \n[INFO] Finding device.\n[INFO] Device found: mps\n\n
    config[\"device\"] = \"cpu\" # for testing\n
    list_of_embedding_models = [\"BAAI/bge-small-en-v1.5\"]\nlist_of_llm_models = [\"qwen2:1.5b\", \"phi3\"]\n
    def process_embedding_model_name_hf(name : str) -&gt; str:\n    \"\"\"\n    Description: This function processes the name of the embedding model from Hugging Face to use as experiment name.\n\n    Input: name (str) - name of the embedding model from Hugging Face.\n\n    Returns: name (str) - processed name of the embedding model.\n    \"\"\"\n    return name.replace(\"/\", \"_\")\n\ndef process_llm_model_name_ollama(name : str) -&gt; str:\n    \"\"\"\n    Description: This function processes the name of the llm model from Ollama to use as experiment name.\n\n    Input: name (str) - name of the llm model from Ollama.\n\n    Returns: name (str) - processed name of the llm model.\n    \"\"\"\n    return name.replace(\":\", \"_\")\n
    queries = [\"Find datasets related to COVID-19\", \"Find datasets related to COVID-19 and India\", \"COVID-19 dataset\", \"COVID-19 dataset India\", \"Mexico historical covid\"]\n
    # download the ollama llm models\n\n# os.system(\"curl -fsSL https://ollama.com/install.sh | sh\")\nos.system(\"ollama serve&amp;\")\nprint(\"Waiting for Ollama server to be active...\")  \nwhile os.system(\"ollama list | grep 'NAME'\") == \"\":\n    pass\n\nfor llm_model in list_of_llm_models:\n    os.system(f\"ollama pull {llm_model}\")\n
    \nWaiting for Ollama server to be active...\nNAME            ID              SIZE    MODIFIED       \n\n
    \nError: listen tcp 127.0.0.1:11434: bind: address already in use\npulling manifest \u280b pulling manifest \u2819 pulling manifest \u2839 pulling manifest \u2838 pulling manifest \u283c pulling manifest \u2834 pulling manifest \npulling 405b56374e02... 100% \u2595\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258f 934 MB                         \npulling 62fbfd9ed093... 100% \u2595\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258f  182 B                         \npulling c156170b718e... 100% \u2595\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258f  11 KB                         \npulling f02dd72bb242... 100% \u2595\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258f   59 B                         \npulling c9f5e9ffbc5f... 100% \u2595\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258f  485 B                         \nverifying sha256 digest \nwriting manifest \nremoving any unused layers \nsuccess \npulling manifest \u280b pulling manifest \u2819 pulling manifest \u2839 pulling manifest \u2838 pulling manifest \u283c pulling manifest \npulling b26e6713dc74... 100% \u2595\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258f 2.4 GB                         \npulling fa8235e5b48f... 100% \u2595\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258f 1.1 KB                         \npulling 542b217f179c... 100% \u2595\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258f  148 B                         \npulling 8dde1baf1db0... 100% \u2595\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258f   78 B                         \npulling f91db7a2deb9... 100% \u2595\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258f  485 B                         \nverifying sha256 digest \nwriting manifest \nremoving any unused layers \nsuccess \n\n
    # use a tiny subset of the data for testing\nconfig[\"test_subset_2000\"] = True\n
    for embedding_model in tqdm(list_of_embedding_models, desc=\"Embedding Models\", total=len(list_of_embedding_models)):\n    for llm_model in tqdm(list_of_llm_models, desc=\"LLM Models\", total=len(list_of_llm_models)):\n        # update the config with the new embedding and llm models\n        config[\"embedding_model\"] = embedding_model\n        config[\"llm_model\"] = llm_model\n\n        # create a new experiment directory using a combination of the embedding model and llm model names\n        experiment_name = f\"{process_embedding_model_name_hf(embedding_model)}_{process_llm_model_name_ollama(llm_model)}\"\n        experiment_path = new_path/Path(f\"data/experiments/{experiment_name}\")\n\n        # create the experiment directory if it does not exist\n        os.makedirs(experiment_path, exist_ok=True)\n\n        # update the config with the new experiment directories\n        config[\"data_dir\"] = str(experiment_path)\n        config[\"persist_dir\"] = str(experiment_path / \"chroma_db\")\n\n        # save training details and config in a dataframe\n        config_df = pd.DataFrame.from_dict(config, orient='index').reset_index()\n        config_df.columns = ['Hyperparameter', 'Value']\n        config_df.to_csv(experiment_path / \"config.csv\", index=False)\n\n        # load the persistent database using ChromaDB\n        client = chromadb.PersistentClient(path=config[\"persist_dir\"])\n\n        # Run \"training\"\n        qa_dataset = setup_vector_db_and_qa(\n            config=config, data_type=config[\"type_of_data\"], client=client\n        )\n\n        # Run an evaluation by aggregating multiple queries and counting the results\n        # TODO : Replace this evaluation with a more meaningful one\n        combined_df = aggregate_multiple_queries_and_count(queries,qa_dataset=qa_dataset, config=config, group_cols = [\"id\", \"name\"], sort_by=\"query\", count = True)\n\n        combined_df.to_csv(experiment_path / \"results.csv\")\n
    \nEmbedding Models:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n[INFO] Training is set to True.\n[INFO] Subsetting the data to 100 rows.\n[INFO] Initializing cache.\n[INFO] Getting dataset metadata from OpenML.\n\n
    \nQUEUEING TASKS | :   0%|          | 0/100 [00:00<?, ?it/s]\n
    \nPROCESSING TASKS | :   0%|          | 0/100 [00:00<?, ?it/s]\n
    \nCOLLECTING RESULTS | :   0%|          | 0/100 [00:00<?, ?it/s]\n
    \n[INFO] Saving metadata to file.\n[INFO] Loading model...\n\n
    \n/Users/eragon/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n  warnings.warn(\n\n
    \n[INFO] Model loaded.\n[INFO] Generating unique documents. Total documents: 992\nNumber of unique documents: 967 vs Total documents: 992\n\n
    \n\n\n
    \nBatches:   0%|          | 0/16 [00:00<?, ?it/s]\n
    \n\n\n
    \nBatches:   0%|          | 0/15 [00:00<?, ?it/s]\n
    \n\n100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [03:06<00:00, 93.04s/it]\n\n\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n\n\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n\n\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \nBatches:   0%|          | 0/1 [00:00<?, ?it/s]\n
    \n\n100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:00<00:00,  8.16it/s]\n\n
    \n[INFO] Training is set to True.\n[INFO] Subsetting the data to 100 rows.\n[INFO] Initializing cache.\n[INFO] Getting dataset metadata from OpenML.\n\n
    \nQUEUEING TASKS | :   0%|          | 0/100 [00:00<?, ?it/s]\n
    \nPROCESSING TASKS | :   0%|          | 0/100 [00:00<?, ?it/s]\n
    \nCOLLECTING RESULTS | :   0%|          | 0/100 [00:00<?, ?it/s]\n
    \n[INFO] Saving metadata to file.\n[INFO] Loading model...\n\n
    \n/Users/eragon/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n  warnings.warn(\n\n
    \n[INFO] Model loaded.\n[INFO] Generating unique documents. Total documents: 992\nNumber of unique documents: 967 vs Total documents: 992\n\n
    \n\n\n
    \nBatches:   0%|          | 0/16 [00:00<?, ?it/s]\n
    \n  0%|          | 0/2 [00:43<?, ?it/s]\nLLM Models:  50%|\u2588\u2588\u2588\u2588\u2588     | 1/2 [04:37<04:37, 277.59s/it]\nEmbedding Models:   0%|          | 0/1 [04:37<?, ?it/s]\n\n
    \n---------------------------------------------------------------------------\nKeyboardInterrupt                         Traceback (most recent call last)\nCell In[11], line 27\n     24 client = chromadb.PersistentClient(path=config[\"persist_dir\"])\n     26 # Run \"training\"\n---> 27 qa_dataset = setup_vector_db_and_qa(\n     28     config=config, data_type=config[\"type_of_data\"], client=client\n     29 )\n     31 # Run an evaluation by aggregating multiple queries and counting the results\n     32 # TODO : Replace this evaluation with a more meaningful one\n     33 combined_df = aggregate_multiple_queries_and_count(queries,qa_dataset=qa_dataset, config=config, group_cols = [\"id\", \"name\"], sort_by=\"query\", count = True)\n\nFile ~/Documents/CODE/Github/ai_search/docs/developer tutorials/../../backend/modules/llm.py:268, in setup_vector_db_and_qa(config, data_type, client)\n    264 metadata_df, all_metadata = create_metadata_dataframe(\n    265     openml_data_object, data_id, all_metadata, config=config\n    266 )\n    267 # Create the vector store\n--> 268 vectordb = load_document_and_create_vector_store(\n    269     metadata_df, config=config, chroma_client=client\n    270 )\n    271 # Initialize the LLM chain and setup Retrieval QA\n    272 qa = initialize_llm_chain(vectordb=vectordb, config=config)\n\nFile ~/Documents/CODE/Github/ai_search/docs/developer tutorials/../../backend/modules/llm.py:107, in load_document_and_create_vector_store(metadata_df, chroma_client, config)\n    104 if not config[\"training\"]:\n    105     return load_vector_store(chroma_client, config, embeddings, collection_name)\n--> 107 return create_vector_store(\n    108     metadata_df, chroma_client, config, embeddings, collection_name\n    109 )\n\nFile ~/Documents/CODE/Github/ai_search/docs/developer tutorials/../../backend/modules/llm.py:222, in create_vector_store(metadata_df, chroma_client, config, embeddings, collection_name)\n    219     return db\n    220 else:\n    221     # db.add_documents(unique_docs, ids=unique_ids)\n--> 222     add_documents_to_db(db, unique_docs, unique_ids)\n    224 return db\n\nFile ~/Documents/CODE/Github/ai_search/docs/developer tutorials/../../backend/modules/llm.py:180, in add_documents_to_db(db, unique_docs, unique_ids)\n    178 else:\n    179     for i in tqdm(range(0, len(unique_docs), bs)):\n--> 180         db.add_documents(unique_docs[i : i + bs], ids=unique_ids[i : i + bs])\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/langchain_core/vectorstores.py:147, in VectorStore.add_documents(self, documents, **kwargs)\n    145 texts = [doc.page_content for doc in documents]\n    146 metadatas = [doc.metadata for doc in documents]\n--> 147 return self.add_texts(texts, metadatas, **kwargs)\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/langchain_community/vectorstores/chroma.py:276, in Chroma.add_texts(self, texts, metadatas, ids, **kwargs)\n    274 texts = list(texts)\n    275 if self._embedding_function is not None:\n--> 276     embeddings = self._embedding_function.embed_documents(texts)\n    277 if metadatas:\n    278     # fill metadatas with empty dicts if somebody\n    279     # did not specify metadata for all texts\n    280     length_diff = len(texts) - len(metadatas)\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/langchain_community/embeddings/huggingface.py:98, in HuggingFaceEmbeddings.embed_documents(self, texts)\n     96     sentence_transformers.SentenceTransformer.stop_multi_process_pool(pool)\n     97 else:\n---> 98     embeddings = self.client.encode(\n     99         texts, show_progress_bar=self.show_progress, **self.encode_kwargs\n    100     )\n    102 return embeddings.tolist()\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/sentence_transformers/SentenceTransformer.py:371, in SentenceTransformer.encode(self, sentences, prompt_name, prompt, batch_size, show_progress_bar, output_value, precision, convert_to_numpy, convert_to_tensor, device, normalize_embeddings)\n    368 features.update(extra_features)\n    370 with torch.no_grad():\n--> 371     out_features = self.forward(features)\n    372     out_features[\"sentence_embedding\"] = truncate_embeddings(\n    373         out_features[\"sentence_embedding\"], self.truncate_dim\n    374     )\n    376     if output_value == \"token_embeddings\":\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/container.py:217, in Sequential.forward(self, input)\n    215 def forward(self, input):\n    216     for module in self:\n--> 217         input = module(input)\n    218     return input\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)\n   1530     return self._compiled_call_impl(*args, **kwargs)  # type: ignore[misc]\n   1531 else:\n-> 1532     return self._call_impl(*args, **kwargs)\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541, in Module._call_impl(self, *args, **kwargs)\n   1536 # If we don't have any hooks, we want to skip the rest of the logic in\n   1537 # this function, and just call forward.\n   1538 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks\n   1539         or _global_backward_pre_hooks or _global_backward_hooks\n   1540         or _global_forward_hooks or _global_forward_pre_hooks):\n-> 1541     return forward_call(*args, **kwargs)\n   1543 try:\n   1544     result = None\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/sentence_transformers/models/Transformer.py:98, in Transformer.forward(self, features)\n     95 if \"token_type_ids\" in features:\n     96     trans_features[\"token_type_ids\"] = features[\"token_type_ids\"]\n---> 98 output_states = self.auto_model(**trans_features, return_dict=False)\n     99 output_tokens = output_states[0]\n    101 features.update({\"token_embeddings\": output_tokens, \"attention_mask\": features[\"attention_mask\"]})\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)\n   1530     return self._compiled_call_impl(*args, **kwargs)  # type: ignore[misc]\n   1531 else:\n-> 1532     return self._call_impl(*args, **kwargs)\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541, in Module._call_impl(self, *args, **kwargs)\n   1536 # If we don't have any hooks, we want to skip the rest of the logic in\n   1537 # this function, and just call forward.\n   1538 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks\n   1539         or _global_backward_pre_hooks or _global_backward_hooks\n   1540         or _global_forward_hooks or _global_forward_pre_hooks):\n-> 1541     return forward_call(*args, **kwargs)\n   1543 try:\n   1544     result = None\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/models/bert/modeling_bert.py:1137, in BertModel.forward(self, input_ids, attention_mask, token_type_ids, position_ids, head_mask, inputs_embeds, encoder_hidden_states, encoder_attention_mask, past_key_values, use_cache, output_attentions, output_hidden_states, return_dict)\n   1130 # Prepare head mask if needed\n   1131 # 1.0 in head_mask indicate we keep the head\n   1132 # attention_probs has shape bsz x n_heads x N x N\n   1133 # input head_mask has shape [num_heads] or [num_hidden_layers x num_heads]\n   1134 # and head_mask is converted to shape [num_hidden_layers x batch x num_heads x seq_length x seq_length]\n   1135 head_mask = self.get_head_mask(head_mask, self.config.num_hidden_layers)\n-> 1137 encoder_outputs = self.encoder(\n   1138     embedding_output,\n   1139     attention_mask=extended_attention_mask,\n   1140     head_mask=head_mask,\n   1141     encoder_hidden_states=encoder_hidden_states,\n   1142     encoder_attention_mask=encoder_extended_attention_mask,\n   1143     past_key_values=past_key_values,\n   1144     use_cache=use_cache,\n   1145     output_attentions=output_attentions,\n   1146     output_hidden_states=output_hidden_states,\n   1147     return_dict=return_dict,\n   1148 )\n   1149 sequence_output = encoder_outputs[0]\n   1150 pooled_output = self.pooler(sequence_output) if self.pooler is not None else None\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)\n   1530     return self._compiled_call_impl(*args, **kwargs)  # type: ignore[misc]\n   1531 else:\n-> 1532     return self._call_impl(*args, **kwargs)\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541, in Module._call_impl(self, *args, **kwargs)\n   1536 # If we don't have any hooks, we want to skip the rest of the logic in\n   1537 # this function, and just call forward.\n   1538 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks\n   1539         or _global_backward_pre_hooks or _global_backward_hooks\n   1540         or _global_forward_hooks or _global_forward_pre_hooks):\n-> 1541     return forward_call(*args, **kwargs)\n   1543 try:\n   1544     result = None\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/models/bert/modeling_bert.py:690, in BertEncoder.forward(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_values, use_cache, output_attentions, output_hidden_states, return_dict)\n    679     layer_outputs = self._gradient_checkpointing_func(\n    680         layer_module.__call__,\n    681         hidden_states,\n   (...)\n    687         output_attentions,\n    688     )\n    689 else:\n--> 690     layer_outputs = layer_module(\n    691         hidden_states,\n    692         attention_mask,\n    693         layer_head_mask,\n    694         encoder_hidden_states,\n    695         encoder_attention_mask,\n    696         past_key_value,\n    697         output_attentions,\n    698     )\n    700 hidden_states = layer_outputs[0]\n    701 if use_cache:\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)\n   1530     return self._compiled_call_impl(*args, **kwargs)  # type: ignore[misc]\n   1531 else:\n-> 1532     return self._call_impl(*args, **kwargs)\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541, in Module._call_impl(self, *args, **kwargs)\n   1536 # If we don't have any hooks, we want to skip the rest of the logic in\n   1537 # this function, and just call forward.\n   1538 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks\n   1539         or _global_backward_pre_hooks or _global_backward_hooks\n   1540         or _global_forward_hooks or _global_forward_pre_hooks):\n-> 1541     return forward_call(*args, **kwargs)\n   1543 try:\n   1544     result = None\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/models/bert/modeling_bert.py:622, in BertLayer.forward(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_value, output_attentions)\n    619     cross_attn_present_key_value = cross_attention_outputs[-1]\n    620     present_key_value = present_key_value + cross_attn_present_key_value\n--> 622 layer_output = apply_chunking_to_forward(\n    623     self.feed_forward_chunk, self.chunk_size_feed_forward, self.seq_len_dim, attention_output\n    624 )\n    625 outputs = (layer_output,) + outputs\n    627 # if decoder, return the attn key/values as the last output\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/pytorch_utils.py:238, in apply_chunking_to_forward(forward_fn, chunk_size, chunk_dim, *input_tensors)\n    235     # concatenate output at same dimension\n    236     return torch.cat(output_chunks, dim=chunk_dim)\n--> 238 return forward_fn(*input_tensors)\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/models/bert/modeling_bert.py:635, in BertLayer.feed_forward_chunk(self, attention_output)\n    633 def feed_forward_chunk(self, attention_output):\n    634     intermediate_output = self.intermediate(attention_output)\n--> 635     layer_output = self.output(intermediate_output, attention_output)\n    636     return layer_output\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)\n   1530     return self._compiled_call_impl(*args, **kwargs)  # type: ignore[misc]\n   1531 else:\n-> 1532     return self._call_impl(*args, **kwargs)\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541, in Module._call_impl(self, *args, **kwargs)\n   1536 # If we don't have any hooks, we want to skip the rest of the logic in\n   1537 # this function, and just call forward.\n   1538 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks\n   1539         or _global_backward_pre_hooks or _global_backward_hooks\n   1540         or _global_forward_hooks or _global_forward_pre_hooks):\n-> 1541     return forward_call(*args, **kwargs)\n   1543 try:\n   1544     result = None\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/transformers/models/bert/modeling_bert.py:547, in BertOutput.forward(self, hidden_states, input_tensor)\n    546 def forward(self, hidden_states: torch.Tensor, input_tensor: torch.Tensor) -> torch.Tensor:\n--> 547     hidden_states = self.dense(hidden_states)\n    548     hidden_states = self.dropout(hidden_states)\n    549     hidden_states = self.LayerNorm(hidden_states + input_tensor)\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)\n   1530     return self._compiled_call_impl(*args, **kwargs)  # type: ignore[misc]\n   1531 else:\n-> 1532     return self._call_impl(*args, **kwargs)\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/module.py:1541, in Module._call_impl(self, *args, **kwargs)\n   1536 # If we don't have any hooks, we want to skip the rest of the logic in\n   1537 # this function, and just call forward.\n   1538 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks\n   1539         or _global_backward_pre_hooks or _global_backward_hooks\n   1540         or _global_forward_hooks or _global_forward_pre_hooks):\n-> 1541     return forward_call(*args, **kwargs)\n   1543 try:\n   1544     result = None\n\nFile ~/.pyenv/versions/3.9.19/envs/openml/lib/python3.9/site-packages/torch/nn/modules/linear.py:116, in Linear.forward(self, input)\n    115 def forward(self, input: Tensor) -> Tensor:\n--> 116     return F.linear(input, self.weight, self.bias)\n\nKeyboardInterrupt: 
    "},{"location":"developer%20tutorials/train%20and%20evaluate%20models/#tutorial-on-using-multiple-models-for-evaluation","title":"Tutorial on using multiple models for evaluation","text":"
    • This tutorial is an example of how to test multiple models on the openml data to see which one performs the best.
    • The evaluation is still a bit basic, but it is a good starting point for future research.
    "},{"location":"developer%20tutorials/train%20and%20evaluate%20models/#setting-the-config","title":"Setting the config","text":""},{"location":"developer%20tutorials/train%20and%20evaluate%20models/#defining-the-models-used","title":"Defining the models used","text":"
    • Embedding models are any from Huggingface hub
    • LLM models are any from Ollama library
    "},{"location":"developer%20tutorials/train%20and%20evaluate%20models/#defining-the-evaluation-queries","title":"Defining the evaluation queries","text":"
    • replace this with a proper dataframe for a more comprehensive evaluation
    "},{"location":"developer%20tutorials/train%20and%20evaluate%20models/#downloading-the-models","title":"Downloading the models","text":"
    • PLEASE MAKE SURE YOU HAVE DOWNLOADED OLLAMA (curl -fsSL https://ollama.com/install.sh | sh)
    "},{"location":"developer%20tutorials/train%20and%20evaluate%20models/#running-the-steps","title":"Running the steps","text":"
    • Create an experiment directory
    • Save a config file with the models and the queries in the experiment directory
    • Download openml data for each dataset and format into a string
    • Create vectorb and embed the data
    • Get the predictions for each model for a list of queries and evaluate the performance
    • (note) At the moment, this runs for a very small subset of the entire data. To disable this behavior and run on the entire data, set config[\"test_subset_2000\"] = False
    "},{"location":"modules/general_utils/","title":"General utils","text":""},{"location":"modules/general_utils/#general_utils.find_device","title":"find_device(training=False)","text":"

    Description: Find the device to use for the pipeline. If cuda is available, use it. If not, check if MPS is available and use it. If not, use CPU.

    Input: training (bool) : Whether the pipeline is being used for training or not.

    Returns: device (str) : The device to use for the pipeline.

    Source code in backend/modules/general_utils.py
    def find_device(training: bool = False ) -> str:\n    \"\"\"\n    Description: Find the device to use for the pipeline. If cuda is available, use it. If not, check if MPS is available and use it. If not, use CPU.\n\n    Input: training (bool) : Whether the pipeline is being used for training or not.\n\n    Returns: device (str) : The device to use for the pipeline.\n    \"\"\"\n    print(\"[INFO] Finding device.\")\n    if torch.cuda.is_available():\n        return \"cuda\"\n    elif torch.backends.mps.is_available():\n        if training == False:\n            # loading metadata on mps for inference is quite slow. So disabling for now.\n            return \"cpu\"\n        return \"mps\"\n    else:\n        return \"cpu\"\n
    "},{"location":"modules/general_utils/#general_utils.load_config_and_device","title":"load_config_and_device(config_file, training=False)","text":"

    Description: Load the config file and find the device to use for the pipeline.

    Input: config_file (str) : The path to the config file. training (bool) : Whether the pipeline is being used for training or not.

    Returns: config (dict) : The config dictionary + device (str) : The device to use for the pipeline.

    Source code in backend/modules/general_utils.py
    def load_config_and_device(config_file: str, training: bool = False) -> dict:\n    \"\"\"\n    Description: Load the config file and find the device to use for the pipeline.\n\n    Input: config_file (str) : The path to the config file.\n    training (bool) : Whether the pipeline is being used for training or not.\n\n    Returns: config (dict) : The config dictionary + device (str) : The device to use for the pipeline.\n    \"\"\"\n    # Check if the config file exists and load it\n    if not os.path.exists(config_file):\n        raise Exception(\"Config file does not exist.\")\n    with open(config_file, \"r\") as f:\n        config = json.load(f)\n\n    # Find device and set it in the config between cpu and cuda and mps if available\n    config[\"device\"] = find_device(training)\n    print(f\"[INFO] Device found: {config['device']}\")\n    return config\n
    "},{"location":"modules/llm_module/","title":"Llm module","text":""},{"location":"modules/llm_module/#llm.add_documents_to_db","title":"add_documents_to_db(db, unique_docs, unique_ids)","text":"

    Description: Add documents to the vector store in batches of 200.

    Input: db (Chroma), unique_docs (list), unique_ids (list)

    Returns: None

    Source code in backend/modules/llm.py
    def add_documents_to_db(db, unique_docs, unique_ids):\n    \"\"\"\n    Description: Add documents to the vector store in batches of 200.\n\n    Input: db (Chroma), unique_docs (list), unique_ids (list)\n\n    Returns: None\n    \"\"\"\n    bs = 512\n    if len(unique_docs) < bs:\n        db.add_documents(unique_docs, ids=unique_ids)\n    else:\n        for i in tqdm(range(0, len(unique_docs), bs)):\n            db.add_documents(unique_docs[i : i + bs], ids=unique_ids[i : i + bs])\n
    "},{"location":"modules/llm_module/#llm.create_vector_store","title":"create_vector_store(metadata_df, chroma_client, config, embeddings, collection_name)","text":"

    Description: Create the vector store using Chroma db. The documents are loaded and processed, unique documents are generated, and the documents are added to the vector store.

    Input: metadata_df (pd.DataFrame), chroma_client (chromadb.PersistentClient), config (dict), embeddings (HuggingFaceEmbeddings), collection_name (str)

    Returns: db (Chroma)

    Source code in backend/modules/llm.py
    def create_vector_store(\n    metadata_df: pd.DataFrame, chroma_client:ClientAPI, config: dict, embeddings: HuggingFaceEmbeddings, collection_name: str \n) -> Chroma:\n    \"\"\"\n    Description: Create the vector store using Chroma db. The documents are loaded and processed, unique documents are generated, and the documents are added to the vector store.\n\n    Input: metadata_df (pd.DataFrame), chroma_client (chromadb.PersistentClient), config (dict), embeddings (HuggingFaceEmbeddings), collection_name (str)\n\n    Returns: db (Chroma)\n    \"\"\"\n\n    db = Chroma(\n        client=chroma_client,\n        embedding_function=embeddings,\n        persist_directory=config[\"persist_dir\"],\n        collection_name=collection_name,\n    )\n\n    documents = load_and_process_data(\n        metadata_df, page_content_column=\"Combined_information\"\n    )\n    if config[\"testing_flag\"]:\n        # subset the data for testing\n        if config[\"test_subset_2000\"] == True:\n            print(\"[INFO] Subsetting the data to 100 rows.\")\n            documents = documents[:100]\n    unique_docs, unique_ids = generate_unique_documents(documents, db)\n\n    print(\n        f\"Number of unique documents: {len(unique_docs)} vs Total documents: {len(documents)}\"\n    )\n    if len(unique_docs) == 0:\n        print(\"No new documents to add.\")\n        return db\n    else:\n        # db.add_documents(unique_docs, ids=unique_ids)\n        add_documents_to_db(db, unique_docs, unique_ids)\n\n    return db\n
    "},{"location":"modules/llm_module/#llm.generate_unique_documents","title":"generate_unique_documents(documents, db)","text":"Generate unique documents by removing duplicates. This is done by generating unique IDs for the documents and keeping only one of the duplicate IDs.

    Source: https://stackoverflow.com/questions/76265631/chromadb-add-single-document-only-if-it-doesnt-exist

    Input: documents (list)

    Returns: unique_docs (list), unique_ids (list)

    Source code in backend/modules/llm.py
    def generate_unique_documents(documents: list, db: Chroma) -> tuple:\n    \"\"\"\n    Description: Generate unique documents by removing duplicates. This is done by generating unique IDs for the documents and keeping only one of the duplicate IDs.\n        Source: https://stackoverflow.com/questions/76265631/chromadb-add-single-document-only-if-it-doesnt-exist\n\n    Input: documents (list)\n\n    Returns: unique_docs (list), unique_ids (list)\n    \"\"\"\n\n    # Remove duplicates based on ID (from database)\n    new_document_ids = set([str(x.metadata[\"did\"]) for x in documents])\n    print(f\"[INFO] Generating unique documents. Total documents: {len(documents)}\")\n    try:\n        old_dids = set([str(x[\"did\"]) for x in db.get()[\"metadatas\"]])\n    except KeyError:\n        old_dids = set([str(x[\"id\"]) for x in db.get()[\"metadatas\"]])\n\n    new_dids = new_document_ids - old_dids\n    documents = [x for x in documents if str(x.metadata[\"did\"]) in new_dids]\n    ids = [str(uuid.uuid5(uuid.NAMESPACE_DNS,doc.page_content)) for doc in documents]\n\n    # Remove duplicates based on document content (from new documents)\n    unique_ids = list(set(ids))\n    seen_ids = set()\n    unique_docs = [\n            doc\n            for doc, id in zip(documents, ids)\n            if id not in seen_ids and (seen_ids.add(id) or True)\n        ]\n\n    return unique_docs, unique_ids\n
    "},{"location":"modules/llm_module/#llm.get_collection_name","title":"get_collection_name(config)","text":"

    Description: Get the collection name based on the type of data provided in the config.

    Input: config (dict)

    Returns: str

    Source code in backend/modules/llm.py
    def get_collection_name(config: dict) -> str:\n    \"\"\"\n    Description: Get the collection name based on the type of data provided in the config.\n\n    Input: config (dict)\n\n    Returns: str\n    \"\"\"\n    return {\"dataset\": \"datasets\", \"flow\": \"flows\"}.get(\n        config[\"type_of_data\"], \"default\"\n    )\n
    "},{"location":"modules/llm_module/#llm.get_llm_chain","title":"get_llm_chain(config, local=False)","text":"

    Description: Get the LLM chain with the specified model and prompt template.

    Input: config (dict)

    Returns: LLMChain

    Source code in backend/modules/llm.py
    def get_llm_chain(config: dict, local:bool =False) -> LLMChain|bool:\n    \"\"\"\n    Description: Get the LLM chain with the specified model and prompt template.\n\n    Input: config (dict)\n\n    Returns: LLMChain\n    \"\"\"\n    base_url = \"http://127.0.0.1:11434\" if local else \"http://ollama:11434\"\n    llm = Ollama(\n        model = config[\"llm_model\"] , base_url = base_url\n    )  \n    # llm = Ollama(\n        # model = config[\"llm_model\"]\n    # )\n    # print(llm)\n    map_template = config[\"llm_prompt_template\"]\n    map_prompt = PromptTemplate.from_template(map_template)\n    # return LLMChain(llm=llm, prompt=map_prompt)\n    return map_prompt | llm | StrOutputParser()\n
    "},{"location":"modules/llm_module/#llm.initialize_llm_chain","title":"initialize_llm_chain(vectordb, config)","text":"

    Description: Initialize the LLM chain and setup Retrieval QA with the specified configuration.

    Input: vectordb (Chroma), config (dict)

    Returns: qa (langchain.chains.retrieval_qa.base.RetrievalQA)

    Source code in backend/modules/llm.py
    def initialize_llm_chain(\n    vectordb: Chroma,\n    config : dict\n) -> langchain.chains.retrieval_qa.base.RetrievalQA:\n    \"\"\"\n    Description: Initialize the LLM chain and setup Retrieval QA with the specified configuration.\n\n    Input: vectordb (Chroma), config (dict)\n\n    Returns: qa (langchain.chains.retrieval_qa.base.RetrievalQA)\n    \"\"\"\n\n    return vectordb.as_retriever(\n        search_type=config[\"search_type\"],\n        search_kwargs={\"k\": config[\"num_return_documents\"]},\n    )\n
    "},{"location":"modules/llm_module/#llm.load_and_process_data","title":"load_and_process_data(metadata_df, page_content_column)","text":"

    Description: Load and process the data for the vector store. Split the documents into chunks of 1000 characters.

    Input: metadata_df (pd.DataFrame), page_content_column (str)

    Returns: chunked documents (list)

    Source code in backend/modules/llm.py
    def load_and_process_data(metadata_df: pd.DataFrame, page_content_column: str) -> list:\n    \"\"\"\n    Description: Load and process the data for the vector store. Split the documents into chunks of 1000 characters.\n\n    Input: metadata_df (pd.DataFrame), page_content_column (str)\n\n    Returns: chunked documents (list)\n    \"\"\"\n    # Load data\n    loader = DataFrameLoader(metadata_df, page_content_column=page_content_column)\n    documents = loader.load()\n\n    # Split documents\n    text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=150)\n    documents = text_splitter.split_documents(documents)\n\n    return documents\n
    "},{"location":"modules/llm_module/#llm.load_document_and_create_vector_store","title":"load_document_and_create_vector_store(metadata_df, chroma_client, config)","text":"

    Loads the documents and creates the vector store. If the training flag is set to True, the documents are added to the vector store. If the training flag is set to False, the vector store is loaded from the persist directory.

    Parameters:

    Name Type Description Default metadata_df DataFrame

    The metadata dataframe.

    required chroma_client PersistentClient

    The Chroma client.

    required config dict

    The configuration dictionary.

    required

    Returns:

    Name Type Description Chroma Chroma

    The Chroma vector store.

    Source code in backend/modules/llm.py
    def load_document_and_create_vector_store(metadata_df: pd.DataFrame, chroma_client:ClientAPI , config: dict) -> Chroma:\n    \"\"\"\n    Loads the documents and creates the vector store. If the training flag is set to True,\n    the documents are added to the vector store. If the training flag is set to False,\n    the vector store is loaded from the persist directory.\n\n    Args:\n        metadata_df (pd.DataFrame): The metadata dataframe.\n        chroma_client (chromadb.PersistentClient): The Chroma client.\n        config (dict): The configuration dictionary.\n\n    Returns:\n        Chroma: The Chroma vector store.\n    \"\"\"\n    embeddings = load_model(config)\n    collection_name = get_collection_name(config)\n\n    if not config[\"training\"]:\n        return load_vector_store(chroma_client, config, embeddings, collection_name)\n\n    return create_vector_store(\n        metadata_df, chroma_client, config, embeddings, collection_name\n    )\n
    "},{"location":"modules/llm_module/#llm.load_model","title":"load_model(config)","text":"

    Description: Load the model using HuggingFaceEmbeddings.

    Input: config (dict)

    Returns: HuggingFaceEmbeddings

    Source code in backend/modules/llm.py
    def load_model(config: dict) -> HuggingFaceEmbeddings | None:\n    \"\"\"\n    Description: Load the model using HuggingFaceEmbeddings.\n\n    Input: config (dict)\n\n    Returns: HuggingFaceEmbeddings\n    \"\"\"\n    print(\"[INFO] Loading model...\")\n    model_kwargs = {\"device\": config[\"device\"], \"trust_remote_code\": True}\n    encode_kwargs = {\"normalize_embeddings\": True}\n    embeddings = HuggingFaceEmbeddings(\n        model_name=config[\"embedding_model\"],\n        model_kwargs=model_kwargs,\n        encode_kwargs=encode_kwargs,\n        show_progress = True,\n        # trust_remote_code=True\n    )\n    print(\"[INFO] Model loaded.\")\n    return embeddings\n
    "},{"location":"modules/llm_module/#llm.load_vector_store","title":"load_vector_store(chroma_client, config, embeddings, collection_name)","text":"

    Description: Load the vector store from the persist directory.

    Input: chroma_client (chromadb.PersistentClient), config (dict), embeddings (HuggingFaceEmbeddings), collection_name (str)

    Returns: Chroma

    Source code in backend/modules/llm.py
    def load_vector_store(chroma_client: ClientAPI, config: dict, embeddings: HuggingFaceEmbeddings, collection_name: str) -> Chroma:\n    \"\"\"\n    Description: Load the vector store from the persist directory.\n\n    Input: chroma_client (chromadb.PersistentClient), config (dict), embeddings (HuggingFaceEmbeddings), collection_name (str)\n\n    Returns: Chroma\n    \"\"\"\n    if not os.path.exists(config[\"persist_dir\"]):\n        raise Exception(\n            \"Persist directory does not exist. Please run the training pipeline first.\"\n        )\n\n    return Chroma(\n        client=chroma_client,\n        persist_directory=config[\"persist_dir\"],\n        embedding_function=embeddings,\n        collection_name=collection_name,\n    )\n
    "},{"location":"modules/llm_module/#llm.setup_vector_db_and_qa","title":"setup_vector_db_and_qa(config, data_type, client)","text":"

    Description: Create the vector database using Chroma db with each type of data in its own collection. Doing so allows us to have a single database with multiple collections, reducing the number of databases we need to manage. This also downloads the embedding model if it does not exist. The QA chain is then initialized with the vector store and the configuration.

    Input: config (dict), data_type (str), client (chromadb.PersistentClient)

    Returns: qa (langchain.chains.retrieval_qa.base.RetrievalQA)

    Source code in backend/modules/llm.py
    def setup_vector_db_and_qa(config: dict, data_type: str, client:ClientAPI) -> langchain.chains.retrieval_qa.base.RetrievalQA:\n    \"\"\"\n    Description: Create the vector database using Chroma db with each type of data in its own collection. Doing so allows us to have a single database with multiple collections, reducing the number of databases we need to manage.\n    This also downloads the embedding model if it does not exist. The QA chain is then initialized with the vector store and the configuration.\n\n    Input: config (dict), data_type (str), client (chromadb.PersistentClient)\n\n    Returns: qa (langchain.chains.retrieval_qa.base.RetrievalQA)\n    \"\"\"\n\n    config[\"type_of_data\"] = data_type\n    # Download the data if it does not exist\n    openml_data_object, data_id, all_metadata = get_all_metadata_from_openml(\n        config=config\n    )\n    # Create the combined metadata dataframe\n    metadata_df, all_metadata = create_metadata_dataframe(\n        openml_data_object, data_id, all_metadata, config=config\n    )\n    # Create the vector store\n    vectordb = load_document_and_create_vector_store(\n        metadata_df, config=config, chroma_client=client\n    )\n    # Initialize the LLM chain and setup Retrieval QA\n    qa = initialize_llm_chain(vectordb=vectordb, config=config)\n    return qa\n
    "},{"location":"modules/metadata_module/","title":"Metadata module","text":""},{"location":"modules/metadata_module/#metadata_utils.combine_metadata","title":"combine_metadata(all_dataset_metadata, all_data_description_df)","text":"

    Description: Combine the descriptions with the metadata table.

    Input: all_dataset_metadata (pd.DataFrame) : The metadata table, all_data_description_df (pd.DataFrame) : The descriptions

    Returns: The combined metadata table.

    Source code in backend/modules/metadata_utils.py
    def combine_metadata(all_dataset_metadata: pd.DataFrame, all_data_description_df: pd.DataFrame) -> pd.DataFrame:\n    \"\"\"\n    Description: Combine the descriptions with the metadata table.\n\n    Input: all_dataset_metadata (pd.DataFrame) : The metadata table,\n    all_data_description_df (pd.DataFrame) : The descriptions\n\n    Returns: The combined metadata table.\n    \"\"\"\n    # Combine the descriptions with the metadata table\n    all_dataset_metadata = pd.merge(\n        all_dataset_metadata, all_data_description_df, on=\"did\", how=\"inner\"\n    )\n\n    # Create a single column that has a combined string of all the metadata and the description in the form of \"column - value, column - value, ... description\"\n\n    all_dataset_metadata[\"Combined_information\"] = all_dataset_metadata.apply(\n        merge_all_columns_to_string, axis=1\n    )\n    return all_dataset_metadata\n
    "},{"location":"modules/metadata_module/#metadata_utils.create_combined_information_df","title":"create_combined_information_df(data_id, descriptions, joined_qualities, joined_features)","text":"

    Description: Create a dataframe with the combined information of the OpenML object.

    Input: data_id (int) : The data id, descriptions (list) : The descriptions of the OpenML object, joined_qualities (list) : The joined qualities of the OpenML object, joined_features (list) : The joined features of the OpenML object

    Returns: The dataframe with the combined information of the OpenML object.

    Source code in backend/modules/metadata_utils.py
    def create_combined_information_df(\n    # data_id, descriptions, joined_qualities, joined_features\n    data_id: int| Sequence[int], descriptions: Sequence[str], joined_qualities: Sequence[str], joined_features: Sequence[str]\n) -> pd.DataFrame:\n    \"\"\"\n    Description: Create a dataframe with the combined information of the OpenML object.\n\n    Input: data_id (int) : The data id, descriptions (list) : The descriptions of the OpenML object, joined_qualities (list) : The joined qualities of the OpenML object, joined_features (list) : The joined features of the OpenML object\n\n    Returns: The dataframe with the combined information of the OpenML object.\n    \"\"\"\n    return pd.DataFrame(\n        {\n            \"did\": data_id,\n            \"description\": descriptions,\n            \"qualities\": joined_qualities,\n            \"features\": joined_features,\n        }\n    )\n
    "},{"location":"modules/metadata_module/#metadata_utils.create_metadata_dataframe","title":"create_metadata_dataframe(openml_data_object, data_id, all_dataset_metadata, config)","text":"

    Creates a dataframe with all the metadata, joined columns with all information for the type of data specified in the config. If training is set to False, the dataframes are loaded from the files. If training is set to True, the dataframes are created and then saved to the files.

    Parameters:

    Name Type Description Default openml_data_object list

    The list of OpenML objects.

    required data_id list

    The list of data ids.

    required all_dataset_metadata DataFrame

    The metadata table.

    required config dict

    The config dictionary.

    required

    Returns:

    Type Description DataFrame

    pd.DataFrame: The combined metadata dataframe.

    DataFrame

    pd.DataFrame: The updated metadata table.

    Source code in backend/modules/metadata_utils.py
    def create_metadata_dataframe(\n    # openml_data_object, data_id, all_dataset_metadata, config\n    openml_data_object: Sequence[Union[openml.datasets.dataset.OpenMLDataset, openml.flows.flow.OpenMLFlow]], data_id: Sequence[int], all_dataset_metadata: pd.DataFrame, config: dict\n) -> Tuple[pd.DataFrame, pd.DataFrame]:\n    \"\"\"\n    Creates a dataframe with all the metadata, joined columns with all information\n    for the type of data specified in the config. If training is set to False,\n    the dataframes are loaded from the files. If training is set to True, the\n    dataframes are created and then saved to the files.\n\n    Args:\n        openml_data_object (list): The list of OpenML objects.\n        data_id (list): The list of data ids.\n        all_dataset_metadata (pd.DataFrame): The metadata table.\n        config (dict): The config dictionary.\n\n    Returns:\n        pd.DataFrame: The combined metadata dataframe.\n        pd.DataFrame: The updated metadata table.\n    \"\"\"\n    # use os.path.join to ensure compatibility with different operating systems\n    file_path = os.path.join(\n        config[\"data_dir\"], f\"all_{config['type_of_data']}_description.csv\"\n    )\n\n    if not config[\"training\"]:\n        return load_metadata(file_path), all_dataset_metadata\n\n    if config[\"type_of_data\"] == \"dataset\":\n        return process_dataset_metadata(\n            openml_data_object, data_id, all_dataset_metadata, file_path\n        )\n\n    if config[\"type_of_data\"] == \"flow\":\n        return process_flow_metadata(openml_data_object, data_id, file_path)\n\n    raise ValueError(f\"Unsupported type_of_data: {config['type_of_data']}\")\n
    "},{"location":"modules/metadata_module/#metadata_utils.extract_attribute","title":"extract_attribute(attribute, attr_name)","text":"

    Description: Extract an attribute from the OpenML object.

    Input: attribute (object) : The OpenML object

    Returns: The attribute value if it exists, else an empty string.

    Source code in backend/modules/metadata_utils.py
    def extract_attribute(attribute: object, attr_name: str) -> str:\n    \"\"\"\n    Description: Extract an attribute from the OpenML object.\n\n    Input: attribute (object) : The OpenML object\n\n    Returns: The attribute value if it exists, else an empty string.\n    \"\"\"\n    return getattr(attribute, attr_name, \"\")\n
    "},{"location":"modules/metadata_module/#metadata_utils.get_all_metadata_from_openml","title":"get_all_metadata_from_openml(config)","text":"

    Description: Gets all the metadata from OpenML for the type of data specified in the config. If training is set to False, it loads the metadata from the files. If training is set to True, it gets the metadata from OpenML.

    This uses parallel threads (pqdm) and so to ensure thread safety, install the package oslo.concurrency.

    Input: config (dict) : The config dictionary

    Returns: all the data descriptions combined with data ids, data ids, and the raw openml objects in a dataframe.

    Source code in backend/modules/metadata_utils.py
    def get_all_metadata_from_openml(config: dict) -> Tuple[pd.DataFrame, Sequence[int], pd.DataFrame] | None:\n    \"\"\"\n    Description: Gets all the metadata from OpenML for the type of data specified in the config.\n    If training is set to False, it loads the metadata from the files. If training is set to True, it gets the metadata from OpenML.\n\n    This uses parallel threads (pqdm) and so to ensure thread safety, install the package oslo.concurrency.\n\n\n    Input: config (dict) : The config dictionary\n\n    Returns: all the data descriptions combined with data ids, data ids, and the raw openml objects in a dataframe.\n    \"\"\"\n\n    # save_filename = f\"./data/all_{config['type_of_data']}_metadata.pkl\"\n    # use os.path.join to ensure compatibility with different operating systems\n    save_filename = os.path.join(\n        config[\"data_dir\"], f\"all_{config['type_of_data']}_metadata.pkl\"\n    )\n    # If we are not training, we do not need to recreate the cache and can load the metadata from the files. If the files do not exist, raise an exception.\n    # TODO : Check if this behavior is correct, or if data does not exist, send to training pipeline?\n    if config[\"training\"] == False or config[\"ignore_downloading_data\"] == True:\n        # print(\"[INFO] Training is set to False.\")\n        # Check if the metadata files exist for all types of data\n        if not os.path.exists(save_filename):\n            raise Exception(\n                \"Metadata files do not exist. Please run the training pipeline first.\"\n            )\n        print(\"[INFO] Loading metadata from file.\")\n        # Load the metadata files for all types of data\n        return load_metadata_from_file(save_filename)\n\n    # If we are training, we need to recreate the cache and get the metadata from OpenML\n    if config[\"training\"] == True:\n        print(\"[INFO] Training is set to True.\")\n        # Gather all OpenML objects of the type of data\n        all_objects = get_openml_objects(config[\"type_of_data\"])\n\n        # subset the data for testing\n        if config[\"test_subset_2000\"] == True:\n            print(\"[INFO] Subsetting the data to 100 rows.\")\n            all_objects = all_objects[:100]\n\n        data_id = [int(all_objects.iloc[i][\"did\"]) for i in range(len(all_objects))]\n\n        print(\"[INFO] Initializing cache.\")\n        initialize_cache(config[\"type_of_data\"], data_id)\n\n        print(f\"[INFO] Getting {config['type_of_data']} metadata from OpenML.\")\n        openml_data_object = get_metadata_from_openml(config, data_id)\n\n        print(\"[INFO] Saving metadata to file.\")\n        save_metadata_to_file((openml_data_object, data_id, all_objects), save_filename)\n\n        return openml_data_object, data_id, all_objects\n
    "},{"location":"modules/metadata_module/#metadata_utils.get_dataset_description","title":"get_dataset_description(dataset_id)","text":"

    Get the dataset description from OpenML using the dataset id

    Input: dataset_id (int) : The dataset id

    Returns: data (openml.datasets.dataset.OpenMLDataset) : The dataset object from OpenML

    Source code in backend/modules/metadata_utils.py
    def get_dataset_description(dataset_id) -> openml.datasets.dataset.OpenMLDataset:\n    \"\"\"\n    Get the dataset description from OpenML using the dataset id\n\n    Input: dataset_id (int) : The dataset id\n\n    Returns: data (openml.datasets.dataset.OpenMLDataset) : The dataset object from OpenML\n    \"\"\"\n    # TODO : Check for objects that do not have qualities being not downloaded properly\n    # try:\n    data = openml.datasets.get_dataset(\n        dataset_id=dataset_id,\n        download_data=False,\n        download_qualities=True,\n        download_features_meta_data=True,\n    )\n\n    return data\n
    "},{"location":"modules/metadata_module/#metadata_utils.get_flow_description","title":"get_flow_description(flow_id)","text":"

    Get the flow description from OpenML using the flow id

    Input: flow_id (int) : The flow id

    Returns: data (openml.flows.flow.OpenMLFlow) : The flow object from OpenML

    Source code in backend/modules/metadata_utils.py
    def get_flow_description(flow_id: int) -> openml.flows.flow.OpenMLFlow:\n    \"\"\"\n    Get the flow description from OpenML using the flow id\n\n    Input: flow_id (int) : The flow id\n\n    Returns: data (openml.flows.flow.OpenMLFlow) : The flow object from OpenML\n    \"\"\"\n    return openml.flows.get_flow(flow_id=flow_id)\n
    "},{"location":"modules/metadata_module/#metadata_utils.get_metadata_from_openml","title":"get_metadata_from_openml(config, data_id)","text":"

    Get metadata from OpenML using parallel processing.

    Source code in backend/modules/metadata_utils.py
    def get_metadata_from_openml(config, data_id: Sequence[int]):\n    \"\"\"\n    Get metadata from OpenML using parallel processing.\n    \"\"\"\n    if config[\"type_of_data\"] == \"dataset\":\n        return pqdm(\n            data_id, get_dataset_description, n_jobs=config[\"data_download_n_jobs\"]\n        )\n    elif config[\"type_of_data\"] == \"flow\":\n        return pqdm(\n            data_id, get_flow_description, n_jobs=config[\"data_download_n_jobs\"]\n        )\n
    "},{"location":"modules/metadata_module/#metadata_utils.get_openml_objects","title":"get_openml_objects(type_of_data)","text":"

    Get OpenML objects based on the type of data.

    Source code in backend/modules/metadata_utils.py
    def get_openml_objects(type_of_data: str):\n    \"\"\"\n    Get OpenML objects based on the type of data.\n    \"\"\"\n    if type_of_data == \"dataset\":\n        return openml.datasets.list_datasets(output_format=\"dataframe\")\n    elif type_of_data == \"flow\":\n        all_objects = openml.flows.list_flows(output_format=\"dataframe\")\n        return all_objects.rename(columns={\"id\": \"did\"})\n    else:\n        raise ValueError(\"Invalid type_of_data specified\")\n
    "},{"location":"modules/metadata_module/#metadata_utils.initialize_cache","title":"initialize_cache(type_of_data, data_id)","text":"

    Initialize cache for the OpenML objects.

    Source code in backend/modules/metadata_utils.py
    def initialize_cache(type_of_data: str, data_id: Sequence[int]) -> None:\n    \"\"\"\n    Initialize cache for the OpenML objects.\n    \"\"\"\n    if type_of_data == \"dataset\":\n        get_dataset_description(data_id[0])\n    elif type_of_data == \"flow\":\n        get_flow_description(data_id[0])\n
    "},{"location":"modules/metadata_module/#metadata_utils.join_attributes","title":"join_attributes(attribute, attr_name)","text":"

    Description: Join the attributes of the OpenML object.

    Input: attribute (object) : The OpenML object

    Returns: The joined attributes if they exist, else an empty string. example: \"column - value, column - value, ...\"

    Source code in backend/modules/metadata_utils.py
    def join_attributes(attribute: object, attr_name: str) -> str:\n    \"\"\"\n    Description: Join the attributes of the OpenML object.\n\n    Input: attribute (object) : The OpenML object\n\n    Returns: The joined attributes if they exist, else an empty string.\n    example: \"column - value, column - value, ...\"\n    \"\"\"\n\n    return (\n        \" \".join([f\"{k} : {v},\" for k, v in getattr(attribute, attr_name, {}).items()])\n        if hasattr(attribute, attr_name)\n        else \"\"\n    )\n
    "},{"location":"modules/metadata_module/#metadata_utils.load_metadata_from_file","title":"load_metadata_from_file(save_filename)","text":"

    Load metadata from a file.

    Source code in backend/modules/metadata_utils.py
    def load_metadata_from_file(save_filename: str) -> Tuple[pd.DataFrame, Sequence[int], pd.DataFrame]:\n    \"\"\"\n    Load metadata from a file.\n    \"\"\"\n    with open(save_filename, \"rb\") as f:\n        return pickle.load(f)\n
    "},{"location":"modules/metadata_module/#metadata_utils.merge_all_columns_to_string","title":"merge_all_columns_to_string(row)","text":"

    Description: Create a single column that has a combined string of all the metadata and the description in the form of \"column - value, column - value, ... description\"

    Input: row (pd.Series) : The row of the dataframe

    Returns: The combined string of all the metadata and the description in the form of \"column - value, column - value, ... description\"

    Source code in backend/modules/metadata_utils.py
    def merge_all_columns_to_string(row: pd.Series) -> str:\n    \"\"\"\n    Description: Create a single column that has a combined string of all the metadata and the description in the form of \"column - value, column - value, ... description\"\n\n    Input: row (pd.Series) : The row of the dataframe\n\n    Returns: The combined string of all the metadata and the description in the form of \"column - value, column - value, ... description\"\n    \"\"\"\n\n    return \" \".join([f\"{col} - {val},\" for col, val in zip(row.index, row.values)])\n
    "},{"location":"modules/metadata_module/#metadata_utils.process_dataset_metadata","title":"process_dataset_metadata(openml_data_object, data_id, all_dataset_metadata, file_path)","text":"

    Description: Process the dataset metadata.

    Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, all_dataset_metadata (pd.DataFrame) : The metadata table, file_path (str) : The file path

    Returns: The combined metadata dataframe and the updated metadata table.

    Source code in backend/modules/metadata_utils.py
    def process_dataset_metadata(\n    openml_data_object: Sequence[openml.datasets.dataset.OpenMLDataset], data_id: Sequence[int], all_dataset_metadata: pd.DataFrame, file_path: str\n) -> Tuple[pd.DataFrame, pd.DataFrame]:\n    \"\"\"\n    Description: Process the dataset metadata.\n\n    Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, all_dataset_metadata (pd.DataFrame) : The metadata table, file_path (str) : The file path\n\n    Returns: The combined metadata dataframe and the updated metadata table.\n    \"\"\"\n    descriptions = [\n        extract_attribute(attr, \"description\") for attr in openml_data_object\n    ]\n    joined_qualities = [\n        join_attributes(attr, \"qualities\") for attr in openml_data_object\n    ]\n    joined_features = [join_attributes(attr, \"features\") for attr in openml_data_object]\n\n    all_data_description_df = create_combined_information_df(\n        data_id, descriptions, joined_qualities, joined_features\n    )\n    all_dataset_metadata = combine_metadata(\n        all_dataset_metadata, all_data_description_df\n    )\n\n    all_dataset_metadata.to_csv(file_path)\n\n    return (\n        all_dataset_metadata[[\"did\", \"name\", \"Combined_information\"]],\n        all_dataset_metadata,\n    )\n
    "},{"location":"modules/metadata_module/#metadata_utils.process_flow_metadata","title":"process_flow_metadata(openml_data_object, data_id, file_path)","text":"

    Description: Process the flow metadata.

    Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, file_path (str) : The file path

    Returns: The combined metadata dataframe and the updated metadata table.

    Source code in backend/modules/metadata_utils.py
    def process_flow_metadata(openml_data_object: Sequence[openml.flows.flow.OpenMLFlow], data_id: Sequence[int], file_path: str) -> Tuple[pd.DataFrame, pd.DataFrame]:\n    \"\"\"\n    Description: Process the flow metadata.\n\n    Input: openml_data_object (list) : The list of OpenML objects, data_id (list) : The list of data ids, file_path (str) : The file path\n\n    Returns: The combined metadata dataframe and the updated metadata table.\n    \"\"\"\n    descriptions = [\n        extract_attribute(attr, \"description\") for attr in openml_data_object\n    ]\n    names = [extract_attribute(attr, \"name\") for attr in openml_data_object]\n    tags = [extract_attribute(attr, \"tags\") for attr in openml_data_object]\n\n    all_data_description_df = pd.DataFrame(\n        {\n            \"did\": data_id,\n            \"description\": descriptions,\n            \"name\": names,\n            \"tags\": tags,\n        }\n    )\n\n    all_data_description_df[\"Combined_information\"] = all_data_description_df.apply(\n        merge_all_columns_to_string, axis=1\n    )\n    all_data_description_df.to_csv(file_path)\n\n    return (\n        all_data_description_df[[\"did\", \"name\", \"Combined_information\"]],\n        all_data_description_df,\n    )\n
    "},{"location":"modules/metadata_module/#metadata_utils.save_metadata_to_file","title":"save_metadata_to_file(data, save_filename)","text":"

    Save metadata to a file.

    Source code in backend/modules/metadata_utils.py
    def save_metadata_to_file(data, save_filename: str):\n    \"\"\"\n    Save metadata to a file.\n    \"\"\"\n    with open(save_filename, \"wb\") as f:\n        pickle.dump(data, f)\n
    "},{"location":"modules/result_gen/","title":"Result gen","text":""},{"location":"modules/result_gen/#results_gen.aggregate_multiple_queries_and_count","title":"aggregate_multiple_queries_and_count(queries, qa_dataset, config, group_cols=['id', 'name'], sort_by='query', count=True)","text":"

    Description: Aggregate the results of multiple queries into a single dataframe and count the number of times a dataset appears in the results

    Input

    queries: List of queries group_cols: List of columns to group by

    Returns: Combined dataframe with the results of all queries

    Source code in backend/modules/results_gen.py
    def aggregate_multiple_queries_and_count(\n    queries, qa_dataset, config, group_cols=[\"id\", \"name\"], sort_by=\"query\", count = True\n) -> pd.DataFrame:\n    \"\"\"\n    Description: Aggregate the results of multiple queries into a single dataframe and count the number of times a dataset appears in the results\n\n    Input:\n        queries: List of queries\n        group_cols: List of columns to group by\n\n    Returns: Combined dataframe with the results of all queries\n    \"\"\"\n    combined_df = pd.DataFrame()\n    for query in tqdm(queries, total=len(queries)):\n        result_data_frame, _ = get_result_from_query(\n            query=query, qa=qa_dataset, type_of_query=\"dataset\", config=config\n        )\n        result_data_frame = result_data_frame[group_cols]\n        # Concat with combined_df with a column to store the query\n        result_data_frame[\"query\"] = query\n        combined_df = pd.concat([combined_df, result_data_frame])\n    if count:\n        combined_df = (\n        combined_df.groupby(group_cols)\n        .count()\n        .reset_index()\n        .sort_values(by=sort_by, ascending=False)\n    )\n\n    return combined_df\n
    "},{"location":"modules/result_gen/#results_gen.check_query","title":"check_query(query)","text":"

    Description: Performs checks on the query - Replaces %20 with space character (browsers do this automatically when spaces are in the URL) - Removes leading and trailing spaces - Limits the query to 150 characters

    Input: query (str)

    Returns: None

    Source code in backend/modules/results_gen.py
    def check_query(query: str) -> str:\n    \"\"\"\n    Description: Performs checks on the query\n    - Replaces %20 with space character (browsers do this automatically when spaces are in the URL)\n    - Removes leading and trailing spaces\n    - Limits the query to 150 characters\n\n    Input: query (str)\n\n    Returns: None\n    \"\"\"\n    if query == \"\":\n        raise ValueError(\"Query cannot be empty.\")\n    query = query.replace(\n        \"%20\", \" \"\n    )  # replace %20 with space character (browsers do this automatically when spaces are in the URL)\n    # query = query.replace(\"dataset\", \"\")\n    # query = query.replace(\"flow\", \"\")\n    query = query.strip()\n    query = query[:200]\n    return query\n
    "},{"location":"modules/result_gen/#results_gen.create_output_dataframe","title":"create_output_dataframe(dict_results, type_of_data, ids_order)","text":"

    Description: Create an output dataframe with the results. The URLs are API calls to the OpenML API for the specific type of data.

    Input: dict_results (dict), type_of_data (str)

    Returns: A dataframe with the results and duplicate names removed.

    Source code in backend/modules/results_gen.py
    def create_output_dataframe(dict_results: dict, type_of_data: str, ids_order: list) -> pd.DataFrame:\n    \"\"\"\n    Description: Create an output dataframe with the results. The URLs are API calls to the OpenML API for the specific type of data.\n\n    Input: dict_results (dict), type_of_data (str)\n\n    Returns: A dataframe with the results and duplicate names removed.\n    \"\"\"\n    output_df = pd.DataFrame(dict_results).T.reset_index()\n    # order the rows based on the order of the ids\n    output_df[\"index\"] = output_df[\"index\"].astype(int)\n    output_df = output_df.set_index(\"index\").loc[ids_order].reset_index()\n    # output_df[\"urls\"] = output_df[\"index\"].apply(\n    #     lambda x: f\"https://www.openml.org/api/v1/json/{type_of_data}/{x}\"\n    # )\n    # https://www.openml.org/search?type=data&sort=runs&status=any&id=31\n    output_df[\"urls\"] = output_df[\"index\"].apply(\n        lambda x: f\"https://www.openml.org/search?type={type_of_data}&id={x}\"\n    )\n    output_df[\"urls\"] = output_df[\"urls\"].apply(make_clickable)\n    # data = openml.datasets.get_dataset(\n    # get rows with unique names\n    if type_of_data == \"data\":\n        output_df[\"command\"] = output_df[\"index\"].apply(\n            lambda x: f\"dataset = openml.datasets.get_dataset({x})\"\n        )\n    elif type_of_data == \"flow\":\n        output_df[\"command\"] = output_df[\"index\"].apply(\n            lambda x: f\"flow = openml.flows.get_flow({x})\"\n        )\n    output_df = output_df.drop_duplicates(subset=[\"name\"])\n    # order the columns\n    output_df = output_df[[\"index\", \"name\", \"command\", \"urls\", \"page_content\"]].rename(\n        columns={\"index\": \"id\", \"urls\": \"OpenML URL\", \"page_content\": \"Description\"}\n    )\n    return output_df\n
    "},{"location":"modules/result_gen/#results_gen.fetch_results","title":"fetch_results(query, qa, type_of_query, config)","text":"

    Description: Fetch results for the query using the QA chain.

    Input: query (str), qa (langchain.chains.retrieval_qa.base.RetrievalQA), type_of_query (str), config (dict)

    Returns: results[\"source_documents\"] (list)

    Source code in backend/modules/results_gen.py
    def fetch_results(query: str, qa: langchain.chains.retrieval_qa.base.RetrievalQA, type_of_query: str, config: dict) -> Sequence[Document]:\n    \"\"\"\n    Description: Fetch results for the query using the QA chain.\n\n    Input: query (str), qa (langchain.chains.retrieval_qa.base.RetrievalQA), type_of_query (str), config (dict)\n\n    Returns: results[\"source_documents\"] (list)\n    \"\"\"\n    results = qa.invoke(\n        input=query,\n        config={\"temperature\": config[\"temperature\"], \"top-p\": config[\"top_p\"]},\n    )\n    if config[\"long_context_reorder\"] == True:\n        results = long_context_reorder(results)\n    id_column = {\"dataset\": \"did\", \"flow\": \"id\", \"data\": \"did\"}\n    id_column = id_column[type_of_query]\n\n    if config[\"reranking\"] == True:\n        try:\n            print(\"[INFO] Reranking results...\")\n            ranker = Ranker(model_name=\"ms-marco-MiniLM-L-12-v2\", cache_dir=\"/tmp/\")\n            rerankrequest = RerankRequest(\n                query=query,\n                passages=[\n                    {\"id\": result.metadata[id_column], \"text\": result.page_content}\n                    for result in results\n                ],\n            )\n            ranking = ranker.rerank(rerankrequest)\n            ids = [result[\"id\"] for result in ranking]\n            ranked_results = [\n                result for result in results if result.metadata[id_column] in ids\n            ]\n            print(\"[INFO] Reranking complete.\")\n            return ranked_results\n        except Exception as e:\n            print(f\"[ERROR] Reranking failed: {e}\")\n            return results\n\n    else:\n        return results\n
    "},{"location":"modules/result_gen/#results_gen.get_result_from_query","title":"get_result_from_query(query, qa, type_of_query, config)","text":"

    Description: Get the result from the query using the QA chain and return the results in a dataframe that is then sent to the frontend.

    Input: query (str), qa (langchain.chains.retrieval_qa.base.RetrievalQA), type_of_query (str)

    Returns: output_df (pd.DataFrame)

    Source code in backend/modules/results_gen.py
    def get_result_from_query(query, qa, type_of_query, config) -> Tuple[pd.DataFrame, Sequence[Document]]:\n    \"\"\"\n    Description: Get the result from the query using the QA chain and return the results in a dataframe that is then sent to the frontend.\n\n    Input: query (str), qa (langchain.chains.retrieval_qa.base.RetrievalQA), type_of_query (str)\n\n    Returns: output_df (pd.DataFrame)\n    \"\"\"\n    if type_of_query == \"dataset\":\n        # Fixing the key_name for dataset because of the way the OpenML API returns the data\n        type_of_query = \"data\"\n    elif type_of_query == \"flow\":\n        type_of_query = \"flow\"\n    else:\n        raise ValueError(f\"Unsupported type_of_data: {type_of_query}\")\n\n    # Process the query\n    query = check_query(query)\n    if query == \"\":\n        return pd.DataFrame(), []\n    source_documents = fetch_results(\n        query, qa, config=config, type_of_query=type_of_query\n    )\n    dict_results, ids_order = process_documents(source_documents)\n    output_df = create_output_dataframe(dict_results, type_of_query, ids_order)\n\n    return output_df, source_documents\n
    "},{"location":"modules/result_gen/#results_gen.long_context_reorder","title":"long_context_reorder(results)","text":"

    Description: Lost in the middle reorder: the less relevant documents will be at the middle of the list and more relevant elements at beginning / end. See: https://arxiv.org/abs//2307.03172

    Input: results (list)

    Returns: reorder results (list)

    Source code in backend/modules/results_gen.py
    def long_context_reorder(results: Sequence[Document]) -> Sequence[Document]:\n    \"\"\"\n    Description: Lost in the middle reorder: the less relevant documents will be at the\n    middle of the list and more relevant elements at beginning / end.\n    See: https://arxiv.org/abs//2307.03172\n\n    Input: results (list)\n\n    Returns: reorder results (list)\n    \"\"\"\n    print(\"[INFO] Reordering results...\")\n    reordering = LongContextReorder()\n    results = reordering.transform_documents(results)\n    print(\"[INFO] Reordering complete.\")\n    return results\n
    "},{"location":"modules/result_gen/#results_gen.make_clickable","title":"make_clickable(val)","text":"

    Description: Make the URL clickable in the dataframe.

    Source code in backend/modules/results_gen.py
    def make_clickable(val : str) -> str:\n    \"\"\"\n    Description: Make the URL clickable in the dataframe.\n    \"\"\"\n    return '<a href=\"{}\">{}</a>'.format(val, val)\n
    "},{"location":"modules/result_gen/#results_gen.process_documents","title":"process_documents(source_documents)","text":"

    Description: Process the source documents and create a dictionary with the key_name as the key and the name and page content as the values.

    Input: source_documents (list), key_name (str)

    Returns: dict_results (dict)

    Source code in backend/modules/results_gen.py
    def process_documents(source_documents : Sequence[Document]) -> Tuple[OrderedDict, list]:\n    \"\"\"\n    Description: Process the source documents and create a dictionary with the key_name as the key and the name and page content as the values.\n\n    Input: source_documents (list), key_name (str)\n\n    Returns: dict_results (dict)\n    \"\"\"\n    dict_results = OrderedDict()\n    for result in source_documents:\n        dict_results[result.metadata[\"did\"]] = {\n            \"name\": result.metadata[\"name\"],\n            \"page_content\": result.page_content,\n        }\n    ids = [result.metadata[\"did\"] for result in source_documents]\n    return dict_results, ids\n
    "}]} \ No newline at end of file diff --git a/site/sitemap.xml.gz b/site/sitemap.xml.gz index 55b1845a05845445bc3a528323cea906dc2102f0..b01907d44b497e68da85671079eecc0b503d818d 100644 GIT binary patch delta 13 Ucmb=gXP58h;CP_cJdwQu03DSCSpWb4 delta 13 Ucmb=gXP58h;7GXIIFY>q03G-Qh5!Hn diff --git a/site/testing/index.html b/site/testing/index.html index 7150ff7..9e4f959 100644 --- a/site/testing/index.html +++ b/site/testing/index.html @@ -470,7 +470,7 @@ - Index + Developer Tutorials @@ -585,6 +585,27 @@ + + + + + + +
  • + + + + + Train and evaluate models + + + + +
  • + + + + diff --git a/site/training/index.html b/site/training/index.html index d7efe7b..8314a6f 100644 --- a/site/training/index.html +++ b/site/training/index.html @@ -407,7 +407,7 @@ - Index + Developer Tutorials @@ -522,6 +522,27 @@ + + + + + + +
  • + + + + + Train and evaluate models + + + + +
  • + + + +