Compare commits

...

1 Commits

Author SHA1 Message Date
Pavel
7140f2cd70 Backend
I have removed the hardcoded part for the all-mpnet-base-v2 and substituted it with a separate EMBEDDINGS_PATH variable.
Now the user is able to pre-download the embeddings (similarly to the recomended way with all-mpnet-base-v2) and also leave it to sentence-transformers without needing to touch vectorstore/base.py
2025-06-21 16:19:42 +02:00
2 changed files with 5 additions and 10 deletions

View File

@@ -16,6 +16,7 @@ class Settings(BaseSettings):
None # if LLM_PROVIDER is openai, LLM_NAME can be gpt-4 or gpt-3.5-turbo None # if LLM_PROVIDER is openai, LLM_NAME can be gpt-4 or gpt-3.5-turbo
) )
EMBEDDINGS_NAME: str = "huggingface_sentence-transformers/all-mpnet-base-v2" EMBEDDINGS_NAME: str = "huggingface_sentence-transformers/all-mpnet-base-v2"
EMBEDDINGS_PATH: Optional[str] = "./models/all-mpnet-base-v2" # Set None for SentenceTransformer to manage download
CELERY_BROKER_URL: str = "redis://localhost:6379/0" CELERY_BROKER_URL: str = "redis://localhost:6379/0"
CELERY_RESULT_BACKEND: str = "redis://localhost:6379/1" CELERY_RESULT_BACKEND: str = "redis://localhost:6379/1"
MONGO_URI: str = "mongodb://localhost:27017/docsgpt" MONGO_URI: str = "mongodb://localhost:27017/docsgpt"

View File

@@ -74,17 +74,11 @@ class BaseVectorStore(ABC):
embeddings_name, embeddings_name,
openai_api_key=embeddings_key openai_api_key=embeddings_key
) )
elif embeddings_name == "huggingface_sentence-transformers/all-mpnet-base-v2":
if os.path.exists("./models/all-mpnet-base-v2"):
embedding_instance = EmbeddingsSingleton.get_instance(
embeddings_name = "./models/all-mpnet-base-v2",
)
else:
embedding_instance = EmbeddingsSingleton.get_instance(
embeddings_name,
)
else: else:
embedding_instance = EmbeddingsSingleton.get_instance(embeddings_name) model_identifier = embeddings_name
if settings.EMBEDDINGS_PATH and os.path.exists(settings.EMBEDDINGS_PATH):
model_identifier = settings.EMBEDDINGS_PATH
embedding_instance = EmbeddingsSingleton.get_instance(model_identifier)
return embedding_instance return embedding_instance