From 40e5e96212da183883ef6904c87bdfd84a445f15 Mon Sep 17 00:00:00 2001 From: n0x29a Date: Tue, 18 Feb 2025 17:57:33 +0100 Subject: [PATCH] draft --- fastembed/config/dense_models.json | 16 ++++++++++++++++ fastembed/config/sparse_models.json | 0 fastembed/model_loader.py | 16 ++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 fastembed/config/dense_models.json create mode 100644 fastembed/config/sparse_models.json create mode 100644 fastembed/model_loader.py diff --git a/fastembed/config/dense_models.json b/fastembed/config/dense_models.json new file mode 100644 index 0000000..1d6fad8 --- /dev/null +++ b/fastembed/config/dense_models.json @@ -0,0 +1,16 @@ +{ + "models": [ + { + "model": "BAAI/bge-base-en", + "dim": 768, + "description": "Text embeddings, Unimodal (text), English...", + "license": "mit", + "size_in_GB": 0.42, + "sources": { + "hf": "Qdrant/fast-bge-base-en", + "url": "https://storage.googleapis.com/qdrant-fastembed/fast-bge-base-en.tar.gz" + }, + "model_file": "model_optimized.onnx" + } + ] +} diff --git a/fastembed/config/sparse_models.json b/fastembed/config/sparse_models.json new file mode 100644 index 0000000..e69de29 diff --git a/fastembed/model_loader.py b/fastembed/model_loader.py new file mode 100644 index 0000000..e6ff9b3 --- /dev/null +++ b/fastembed/model_loader.py @@ -0,0 +1,16 @@ +from pathlib import Path +import json +from typing import Dict, List + + +class ModelLoader: + def __init__(self): + self.config_dir = Path(__file__).parent / "configs" + self._models: Dict[str, List[Dict]] = {} + + def load_models(self, model_type: str) -> List[Dict]: + if model_type not in self._models: + config_path = self.config_dir / f"{model_type}_models.json" + with open(config_path) as f: + self._models[model_type] = json.load(f)["models"] + return self._models[model_type]