chore: add abstract decorator and output log when query embedding fails (#9264)

This commit is contained in:
zhuhao 2024-10-12 23:58:41 +08:00 committed by GitHub
parent ea6734f550
commit d97d3ff5fc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 2 deletions

View File

@ -5,6 +5,7 @@ from typing import Optional, cast
import numpy as np
from sqlalchemy.exc import IntegrityError
from configs import dify_config
from core.embedding.embedding_constant import EmbeddingInputType
from core.model_manager import ModelInstance
from core.model_runtime.entities.model_entities import ModelPropertyKey
@ -110,6 +111,8 @@ class CacheEmbedding(Embeddings):
embedding_results = embedding_result.embeddings[0]
embedding_results = (embedding_results / np.linalg.norm(embedding_results)).tolist()
except Exception as ex:
if dify_config.DEBUG:
logging.exception(f"Failed to embed query text: {ex}")
raise ex
try:
@ -122,6 +125,8 @@ class CacheEmbedding(Embeddings):
encoded_str = encoded_vector.decode("utf-8")
redis_client.setex(embedding_cache_key, 600, encoded_str)
except Exception as ex:
logging.exception("Failed to add embedding to redis %s", ex)
if dify_config.DEBUG:
logging.exception("Failed to add embedding to redis %s", ex)
raise ex
return embedding_results

View File

@ -27,9 +27,11 @@ class BaseKeyword(ABC):
def delete_by_ids(self, ids: list[str]) -> None:
raise NotImplementedError
@abstractmethod
def delete(self) -> None:
raise NotImplementedError
@abstractmethod
def search(self, query: str, **kwargs: Any) -> list[Document]:
raise NotImplementedError

View File

@ -77,7 +77,7 @@ class ElasticSearchVector(BaseVector):
raise ValueError("Elasticsearch vector database version must be greater than 8.0.0")
def get_type(self) -> str:
return "elasticsearch"
return VectorType.ELASTICSEARCH
def add_texts(self, documents: list[Document], embeddings: list[list[float]], **kwargs):
uuids = self._get_uuids(documents)