Fix error of changing embedding model (#4184)

### What problem does this PR solve?

1. Change embedding model of knowledge base won't change the default
embedding model.
2. Retrieval test bug

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

---------

Signed-off-by: jinhai <haijin.chn@gmail.com>
This commit is contained in:
Jin Hai 2024-12-23 16:23:54 +08:00 committed by GitHub
parent a4bccc1ae7
commit 4abc144d3d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -61,11 +61,11 @@ class DefaultEmbedding(Base):
^_-
"""
if not settings.LIGHTEN and not DefaultEmbedding._model:
if not settings.LIGHTEN:
with DefaultEmbedding._model_lock:
from FlagEmbedding import FlagModel
import torch
if not DefaultEmbedding._model:
if not DefaultEmbedding._model or model_name != DefaultEmbedding._model_name:
try:
DefaultEmbedding._model = FlagModel(os.path.join(get_home_cache_dir(), re.sub(r"^[a-zA-Z0-9]+/", "", model_name)),
query_instruction_for_retrieval="为这个句子生成表示以用于检索相关文章:",
@ -261,7 +261,7 @@ class FastEmbed(DefaultEmbedding):
threads: int | None = None,
**kwargs,
):
if not settings.LIGHTEN and not FastEmbed._model:
if not settings.LIGHTEN:
with FastEmbed._model_lock:
from fastembed import TextEmbedding
if not DefaultEmbedding._model or model_name != DefaultEmbedding._model_name: