From aab0378a8d4e865fab7728f60cec5ae3cc4c9fcc Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Sun, 25 Aug 2024 21:40:40 -0700 Subject: [PATCH 01/35] added faiss search functionality --- faiss_search/search_directory.py | 63 ++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/faiss_search/search_directory.py b/faiss_search/search_directory.py index 5cf0ad8..55c0de6 100644 --- a/faiss_search/search_directory.py +++ b/faiss_search/search_directory.py @@ -9,6 +9,7 @@ from file_processing import Directory from .tools.errors import FileTypeError from .tools.errors import EncodingModelError +from faiss_search import faiss_index from sentence_transformers import SentenceTransformer class SearchDirectory: @@ -33,6 +34,11 @@ def __init__(self, folder_path: str) -> None: else: self.n_chunks = None self.encoding_name = None + # get the faiss index + if os.path.exists(os.path.join(self.folder_path, "index.faiss")): + self.index = faiss_index.load_index(os.path.join(self.folder_path, "index.faiss")) + else: + self.index = None # load the encoding model if self.encoding_name is not None: self.load_embedding_model(self.encoding_name) @@ -299,3 +305,60 @@ def embed_text(self, row_start: int = 0, row_end: int = None, batch_size: int = current_row += batch_size self._combine_embeddings() + + def create_flat_index(self, embeddings: np.ndarray = None) -> None: + """ + Creates a FAISS flat index from the provided embeddings and saves it to a file. + + :param embeddings: The embeddings to use for creating the index. If None, the method will load embeddings from file. + """ + embeddings = self._check_for_embeddings(embeddings) + self.index = faiss_index.create_flat_index(embeddings, file_path=os.path.join(self.folder_path, "index.faiss")) + + def create_ivf_flat_index(self, embeddings: np.ndarray = None, nlist: int = None) -> None: + """ + Creates a FAISS IVF flat index from the provided embeddings and saves it to a file. + + :param embeddings: The embeddings to use for creating the index. If None, the method will load embeddings from file. + :param nlist: Number of partitions (clusters) in the IVF index. + """ + embeddings = self._check_for_embeddings(embeddings) + self.index = faiss_index.create_IVF_flat_index(embeddings, nlist=nlist, file_path=os.path.join(self.folder_path, "index.faiss")) + + def create_hnsw_index(self, + embeddings: np.ndarray = None, + M: int = 64, + efConstruction: int = 64) -> None: + """ + Creates a FAISS HNSW index from the provided embeddings and saves it to a file. + + :param embeddings: The embeddings to use for creating the index. If None, the method will load embeddings from file. + :param M: The number of neighbors to use in the HNSW graph. + :param efConstruction: The size of the dynamic list used during the construction of the HNSW graph. + """ + embeddings = self._check_for_embeddings(embeddings) + self.index = faiss_index.create_HNSW_index(embeddings, M=M, efConstruction=efConstruction, file_path=os.path.join(self.folder_path, "index.faiss")) + + def search(self, query: str, k: int = 1, *args): + """ + Searches the FAISS index for the most similar chunks to the provided query based on the embeddings. + + :param query: The query string to search for. + :param k: The number of nearest neighbors to retrieve. + :param args: Additional arguments passed to the FAISS query method. + + :return: A DataFrame containing the most similar chunks based on the query. + + :raises FileNotFoundError: If 'data_chunked.csv' or FAISS index is not found. + :raises EncodingModelError: If no encoding model is loaded. + """ + if self.chunks_path is None: + raise FileNotFoundError(f"Error: data_chunked.csv not located in {self.folder_path}") + if self.index is None: + raise FileNotFoundError(f"Error: no FAISS index found in {self.folder_path}") + if self.encoder is None: + raise EncodingModelError("Error: no encoding model found. Run 'load_embedding_model' first.") + xq = np.expand_dims(self._embed_string(query), axis=0) + df = pd.read_csv(os.path.join(self.folder_path, 'data_chunked.csv')) + _, indexes = self.index.query(xq, k, *args) + return df.iloc[indexes[0]] From ed2ed2346bb0fd795d5a0145e2284e703baac202 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Sun, 25 Aug 2024 21:44:52 -0700 Subject: [PATCH 02/35] added test cases for search step --- tests/test_search_directory.py | 76 ++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/tests/test_search_directory.py b/tests/test_search_directory.py index 0a4bf3a..df848ec 100644 --- a/tests/test_search_directory.py +++ b/tests/test_search_directory.py @@ -161,3 +161,79 @@ def test_overlapping_embedding_files(embedding_model, tmp_path): os.remove("tests/resources/search_directory_test_files/data_chunked.csv") os.remove("tests/resources/search_directory_test_files/setup_data.json") os.remove("tests/resources/search_directory_test_files/embeddings.npy") + +# Test FAISS search step + +def test_flat_faiss_index_creation(directory_with_embeding_module): + search = SearchDirectory(directory_with_embeding_module) + try: + search.embed_text() + search.create_flat_index() + assert os.path.exists(directory_with_embeding_module / "index.faiss") + finally: + shutil.rmtree(directory_with_embeding_module / "embedding_batches") + os.remove(directory_with_embeding_module / "embeddings.npy") + os.remove(directory_with_embeding_module / "index.faiss") + +def test_ivf_flat_faiss_index_creation(directory_with_embeding_module): + search = SearchDirectory(directory_with_embeding_module) + try: + search.embed_text() + search.create_ivf_flat_index() + assert os.path.exists(directory_with_embeding_module / "index.faiss") + finally: + shutil.rmtree(directory_with_embeding_module / "embedding_batches") + os.remove(directory_with_embeding_module / "embeddings.npy") + os.remove(directory_with_embeding_module / "index.faiss") + +def test_hnsw_faiss_index_creation(directory_with_embeding_module): + search = SearchDirectory(directory_with_embeding_module) + try: + search.embed_text() + search.create_hnsw_index() + assert os.path.exists(directory_with_embeding_module / "index.faiss") + finally: + shutil.rmtree(directory_with_embeding_module / "embedding_batches") + os.remove(directory_with_embeding_module / "embeddings.npy") + os.remove(directory_with_embeding_module / "index.faiss") + +@pytest.fixture(scope="module") +def directory_with_faiss(resource_folder, tmp_path_factory, embedding_model): + file_path = tmp_path_factory.mktemp("with_faiss") + search = SearchDirectory(file_path) + search.report_from_directory(resource_folder) + search.chunk_text() + search.load_embedding_model(embedding_model) + search.embed_text() + search.create_ivf_flat_index() + return file_path + +search_variable_names = "query, k, nprobe" +general_query = "What is the meaning of life, the universe, and everything?" +search_values = [ + (general_query, 3, 1), + (general_query, 3, 3), + (general_query, 1, 3) +] + +@pytest.mark.parametrize(search_variable_names, search_values) +def test_faiss_search(directory_with_faiss, query, k, nprobe): + search_ivf = SearchDirectory(directory_with_faiss) + results_ivf = search_ivf.search(query, k, nprobe) + assert search_ivf.index.index.nprobe == nprobe + assert len(results_ivf) == k + +def test_search_no_chunks(tmp_path): + search = SearchDirectory(tmp_path) + with pytest.raises(Exception): + search.search("Test") + +def test_search_no_embedding_model(directory_with_chunks): + search = SearchDirectory(directory_with_chunks) + with pytest.raises(Exception): + search.search("Test") + +def test_search_no_faiss(directory_with_embeding_module): + search = SearchDirectory(directory_with_embeding_module) + with pytest.raises (Exception): + search.search("Test") From 8cf6377681c55ab4c3a6e455fbc4b91dede2c1b5 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Sun, 25 Aug 2024 21:52:18 -0700 Subject: [PATCH 03/35] added demo notebook for faiss search pipeline --- search_directory_demo.ipynb | 401 ++++++++++++++++++++++++++++++++++++ 1 file changed, 401 insertions(+) create mode 100644 search_directory_demo.ipynb diff --git a/search_directory_demo.ipynb b/search_directory_demo.ipynb new file mode 100644 index 0000000..054d1e8 --- /dev/null +++ b/search_directory_demo.ipynb @@ -0,0 +1,401 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Search Directory Tutorial\n", + "\n", + "This notebook demonstrates how to use the `SearchDirectory` class to create embeddings and query a set of documents using a FAISS index.\n", + "\n", + "The process can be broken down into the following steps:\n", + "1. Get text information from documents in a directory\n", + "2. Chunk the text data\n", + "3. Load an embedding model\n", + "4. Embed the chunked text\n", + "5. Create a FAISS index\n", + "6. Use a query to search the FAISS index" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\TYWILSON\\OneDrive - HC-SC PHAC-ASPC\\Documents\\GitHub\\faiss-search\\.venv\\lib\\site-packages\\pypdf\\_crypt_providers\\_cryptography.py:32: CryptographyDeprecationWarning: ARC4 has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.ARC4 and will be removed from this module in 48.0.0.\n", + " from cryptography.hazmat.primitives.ciphers.algorithms import AES, ARC4\n" + ] + } + ], + "source": [ + "import os\n", + "import shutil\n", + "from faiss_search import SearchDirectory" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1. Get text information from documents in a directory\n", + "\n", + "This step can be skipped if you already have a CSV containing the document names/file paths and the text data." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# specify a path to save the chunking, embedding, and faiss index to\n", + "os.makedirs('sample_search_docs', exist_ok=True)\n", + "search_dir_path = \"sample_search_docs\"\n", + "\n", + "# create a SearchDirectory object\n", + "search = SearchDirectory(search_dir_path)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Processing files: 20 files completed [00:00, 50.49 files completed/s]\n", + "Processing batches: 1 batches completed [00:00, 2.51 batches completed/s]\n" + ] + } + ], + "source": [ + "# specify the path with the files to extract text from\n", + "resource_path = \"tests/resources/sample_text_files\"\n", + "\n", + "# generate a CSV report that contains text information\n", + "search.report_from_directory(resource_path)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2. Chunk the text data from the report\n", + "\n", + "You can either pass no arguments and it will use the `report.csv` generated in the previous step or you can specify the file path of another CSV file containing text data along with the column names of the file path and text content." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total rows (excluding header): 20\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Processing rows: 100%|██████████| 20/20 [00:00<00:00, 9787.20it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Chunking complete and saved to 'data_chunked.csv'.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# generate chunks from the report\n", + "search.chunk_text()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# generate chunks from a CSV file\n", + "search.chunk_text(\"tests/resources/search_directory_test_files/report_modified.csv\",\n", + " \"path\",\n", + " \"content\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3. Specify the embedding model to use" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\TYWILSON\\OneDrive - HC-SC PHAC-ASPC\\Documents\\GitHub\\faiss-search\\.venv\\lib\\site-packages\\transformers\\tokenization_utils_base.py:1601: FutureWarning: `clean_up_tokenization_spaces` was not set. It will be set to `True` by default. This behavior will be depracted in transformers v4.45, and will be then set to `False` by default. For more details check this issue: https://github.com/huggingface/transformers/issues/31884\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "search.load_embedding_model(\"paraphrase-MiniLM-L3-v2\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4. Perform embeddings on the chunked text data\n", + "\n", + "By default, this will split the task into batches that are saved to store progress during long computations. This is demonstrated by specifying the `batch_size` to be 20 chunks. The embeddings can also be broken down further by specifying the start and end chunks. The function is also designed to not recompute any chunks that have already been saved.\n", + "\n", + "Once all the chunks are computed and saved then they are combined and saved to `embeddings.npy`" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 20/20 [00:04<00:00, 4.62it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Embedding batch complete and saved to embeddings (0-20).npy').\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 20/20 [00:00<00:00, 38.44it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Embedding batch complete and saved to embeddings (20-40).npy').\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 20/20 [00:00<00:00, 40.23it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Embedding batch complete and saved to embeddings (40-60).npy').\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 16/16 [00:00<00:00, 38.02it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Embedding batch complete and saved to embeddings (60-76).npy').\n", + "Embeddings combined and saved to embeddings.npy\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "search.embed_text(row_start=0, row_end=-1, batch_size=20)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5. Create the FAISS index\n", + "\n", + "Multiple different types of FAISS indexes can be created with different hyperparameters. The functionality of using and creating FAISS indexes is demonstrated in more depth in `faiss_demo.ipynb`. This class uses the same methods as that demo but will always save the FAISS index after creating them." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "search.create_flat_index()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 6. Query the FAISS index and find the most similar documents\n", + "\n", + "Specify a query and the number of similar chunks to return (as well as any hyperparameters depending on the FAISS index used) and this will return a data frame with the most similar chunks (accoring to the embedding and FAISS models used)." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\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", + "
file_pathcontent
10tests\\resources\\sample_text_files\\climate_chan...The earth's climate is naturally variable on a...
43tests\\resources\\sample_text_files\\history_of_c...The Huron-Wendat of the Great Lakes Region, li...
56tests\\resources\\sample_text_files\\origin_of_na...Origin of the name \"Canada\"\\nToday, it seems i...
\n", + "
" + ], + "text/plain": [ + " file_path \\\n", + "10 tests\\resources\\sample_text_files\\climate_chan... \n", + "43 tests\\resources\\sample_text_files\\history_of_c... \n", + "56 tests\\resources\\sample_text_files\\origin_of_na... \n", + "\n", + " content \n", + "10 The earth's climate is naturally variable on a... \n", + "43 The Huron-Wendat of the Great Lakes Region, li... \n", + "56 Origin of the name \"Canada\"\\nToday, it seems i... " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query = \"What is the meaning of life, the universe, and everything?\"\n", + "search.search(query, k=3)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Clean up created files" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "shutil.rmtree(\"sample_search_docs\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From d93fb18fc42a73cef6501121c02c4185841f338f Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 10:24:13 -0700 Subject: [PATCH 04/35] added variance metric to dataset variability --- faiss_search/dataset_variability.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 faiss_search/dataset_variability.py diff --git a/faiss_search/dataset_variability.py b/faiss_search/dataset_variability.py new file mode 100644 index 0000000..7be4d39 --- /dev/null +++ b/faiss_search/dataset_variability.py @@ -0,0 +1,8 @@ +import numpy as np + +class DatasetVariability: + def __init__(self, embedding: np.ndarray): + self.embedding = embedding + + def variance(self): + return np.sum(np.var(self.embedding, axis=0)) \ No newline at end of file From 6a627b9598db1b63a459e82d69bfdfc4ee0b0c75 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 10:27:06 -0700 Subject: [PATCH 05/35] added cosine similarity metric to dataset variability --- faiss_search/dataset_variability.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/faiss_search/dataset_variability.py b/faiss_search/dataset_variability.py index 7be4d39..ac61b63 100644 --- a/faiss_search/dataset_variability.py +++ b/faiss_search/dataset_variability.py @@ -4,5 +4,9 @@ class DatasetVariability: def __init__(self, embedding: np.ndarray): self.embedding = embedding - def variance(self): - return np.sum(np.var(self.embedding, axis=0)) \ No newline at end of file + def variance(self) -> float: + return np.sum(np.var(self.embedding, axis=0)) + + def cosine_similarity_avg(self) -> float: + mean_vec = np.mean(self.embedding, axis=0) + return np.mean(np.dot(self.embedding, mean_vec)) \ No newline at end of file From 3b9d16bd8042c659f849e0c411b15cf9f0722da1 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 10:27:49 -0700 Subject: [PATCH 06/35] added dataset variability to faiss-search init --- faiss_search/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/faiss_search/__init__.py b/faiss_search/__init__.py index bedff82..4cabc2a 100644 --- a/faiss_search/__init__.py +++ b/faiss_search/__init__.py @@ -1,3 +1,4 @@ from .search_directory import SearchDirectory +from .dataset_variability import DatasetVariability -__all__ = ['SearchDirectory'] \ No newline at end of file +__all__ = ['SearchDirectory', 'DatasetVariability'] \ No newline at end of file From 7dd458c69dd07ac34a13ed392b24046289b9ea89 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 10:31:45 -0700 Subject: [PATCH 07/35] added normalize feature to dataset variability --- faiss_search/dataset_variability.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/faiss_search/dataset_variability.py b/faiss_search/dataset_variability.py index ac61b63..3e8dfc1 100644 --- a/faiss_search/dataset_variability.py +++ b/faiss_search/dataset_variability.py @@ -1,8 +1,14 @@ import numpy as np class DatasetVariability: - def __init__(self, embedding: np.ndarray): - self.embedding = embedding + def __init__(self, embedding: np.ndarray, normalize: bool = True) -> None: + if normalize: + self.embedding = normalize(embedding) + else: + self.embedding = embedding + + def normalize(embedding: np.ndarray) -> None: + return embedding / np.linalg.norm(embedding, axis=1, keepdims=True) def variance(self) -> float: return np.sum(np.var(self.embedding, axis=0)) From 3f0ee75af9deaa6ed7c33d027f1cf26ebe7fc412 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 10:51:26 -0700 Subject: [PATCH 08/35] created pyproject.toml file --- pyproject.toml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..521d96e --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,14 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "faiss-search" +description = "A semantic embedding and FAISS search pipeline for document retrieval" +readme = "README.md" +requires-python = ">=3.10" +classifiers = ["Programming Language :: Python :: 3"] +dynamic = ["version", "dependencies"] + +[tool.setuptools.dynamic] +dependencies = { file = ["requirements.txt"]} \ No newline at end of file From 807f59de44c1816db7659f31d6a8553fa4cbfb44 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 11:18:37 -0700 Subject: [PATCH 09/35] add build and wheel to requirements --- requirements.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/requirements.txt b/requirements.txt index fe36caa..ee5b95b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +build==1.0.3 faiss-cpu==1.7.4 ipykernel==6.28.0 langchain @@ -6,4 +7,5 @@ pandas>=2.0.3 pytest==7.4.0 tqdm==4.66.1 sentence-transformers==2.2.2 +wheel==0.40.0 git+https://github.com/hc-sc-ocdo-bdpd/file-processing-tools.git \ No newline at end of file From 1203389fdcc161a7c4f2505f7f18fc2efb9bda24 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 11:19:04 -0700 Subject: [PATCH 10/35] remove requires wheel --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 521d96e..f1f0e23 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools", "wheel"] +requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] @@ -11,4 +11,4 @@ classifiers = ["Programming Language :: Python :: 3"] dynamic = ["version", "dependencies"] [tool.setuptools.dynamic] -dependencies = { file = ["requirements.txt"]} \ No newline at end of file +dependencies = { file = ["requirements.txt"] } \ No newline at end of file From 5a938319c17058b95fcf1c88473eaf35ee5f5354 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 11:46:56 -0700 Subject: [PATCH 11/35] placed wheel and build in the pyproject requirements --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f1f0e23..38353db 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools>=61.0"] +requires = ["setuptools>=61.0", "wheel>=0.40.0", "build>=1.0.3"] build-backend = "setuptools.build_meta" [project] From c29be0c3951b095db41b37f3e4749e5cdeae8b56 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 11:47:33 -0700 Subject: [PATCH 12/35] removed wheel and build and reformatted file processing --- requirements.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index ee5b95b..95b77b4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ -build==1.0.3 faiss-cpu==1.7.4 ipykernel==6.28.0 langchain @@ -7,5 +6,4 @@ pandas>=2.0.3 pytest==7.4.0 tqdm==4.66.1 sentence-transformers==2.2.2 -wheel==0.40.0 -git+https://github.com/hc-sc-ocdo-bdpd/file-processing-tools.git \ No newline at end of file +file-processing @ git+https://github.com/hc-sc-ocdo-bdpd/file-processing-tools.git \ No newline at end of file From bdb764ae47dffe8e10ff454199ddcb3aea0a94b5 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 11:50:23 -0700 Subject: [PATCH 13/35] update gitignore --- .gitignore | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.gitignore b/.gitignore index 960e9b5..f505867 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,28 @@ test_import.ipynb # byte-compiled __pycache__/ +*.py[cod] +*$py.class + +# Distribution / packaging +.Python +build/ +develop-eggs/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST # environments .venv From 51a28a2eb500364a7a431a73f39786418e59f1db Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 11:54:06 -0700 Subject: [PATCH 14/35] created dist files --- dist/faiss_search-0.0.0-py3-none-any.whl | Bin 0 -> 11461 bytes dist/faiss_search-0.0.0.tar.gz | Bin 0 -> 11849 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 dist/faiss_search-0.0.0-py3-none-any.whl create mode 100644 dist/faiss_search-0.0.0.tar.gz diff --git a/dist/faiss_search-0.0.0-py3-none-any.whl b/dist/faiss_search-0.0.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..aa4acf0e221eb3b3421960fedb5a2e8156ce85e1 GIT binary patch literal 11461 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 literal 0 HcmV?d00001 diff --git a/dist/faiss_search-0.0.0.tar.gz b/dist/faiss_search-0.0.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..73e3e1ae4433cb93bb39dfb91f26a60bc81fb954 GIT binary patch literal 11849 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 V^8bH(%#a5l{xl|Pf@_6``+xt}+hhO$ literal 0 HcmV?d00001 From 572b237746695bc2109dd2d0777791dccd30cbb0 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 12:15:54 -0700 Subject: [PATCH 15/35] update name in pyproject --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 38353db..f0da004 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["setuptools>=61.0", "wheel>=0.40.0", "build>=1.0.3"] build-backend = "setuptools.build_meta" [project] -name = "faiss-search" +name = "faiss_search" description = "A semantic embedding and FAISS search pipeline for document retrieval" readme = "README.md" requires-python = ">=3.10" From 8c2838bdc6cdf75ed861c84c73bc3afaf2acfc6b Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 12:42:53 -0700 Subject: [PATCH 16/35] bug fix: normalize function not called correctly --- faiss_search/dataset_variability.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/faiss_search/dataset_variability.py b/faiss_search/dataset_variability.py index 3e8dfc1..9b2dda0 100644 --- a/faiss_search/dataset_variability.py +++ b/faiss_search/dataset_variability.py @@ -3,11 +3,11 @@ class DatasetVariability: def __init__(self, embedding: np.ndarray, normalize: bool = True) -> None: if normalize: - self.embedding = normalize(embedding) + self.embedding = self.normalize(embedding) else: self.embedding = embedding - def normalize(embedding: np.ndarray) -> None: + def normalize(self, embedding: np.ndarray) -> None: return embedding / np.linalg.norm(embedding, axis=1, keepdims=True) def variance(self) -> float: From b71c095000efbc2af6052ba741361ca319b8d457 Mon Sep 17 00:00:00 2001 From: TylerWilsonHC-SC Date: Mon, 26 Aug 2024 13:35:58 -0700 Subject: [PATCH 17/35] added test document for dataset variability --- .../paraphrasemini-space-embeddings.npy | Bin 0 -> 1592960 bytes tests/test_dataset_variability.py | 13 +++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 tests/resources/sample_embedding_files/paraphrasemini-space-embeddings.npy create mode 100644 tests/test_dataset_variability.py diff --git a/tests/resources/sample_embedding_files/paraphrasemini-space-embeddings.npy b/tests/resources/sample_embedding_files/paraphrasemini-space-embeddings.npy new file mode 100644 index 0000000000000000000000000000000000000000..6fcaa656952e0b1744cf8ef47e6e9bb589376b69 GIT binary patch literal 1592960 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 z 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