Browse Source

fix: float values are not json for nan value close #11827 (#11840)

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
yihong 4 months ago
parent
commit
5a8a901560
1 changed files with 5 additions and 0 deletions
  1. 5 0
      api/core/rag/embedding/cached_embedding.py

+ 5 - 0
api/core/rag/embedding/cached_embedding.py

@@ -65,6 +65,11 @@ class CacheEmbedding(Embeddings):
                     for vector in embedding_result.embeddings:
                         try:
                             normalized_embedding = (vector / np.linalg.norm(vector)).tolist()
+                            # stackoverflow best way: https://stackoverflow.com/questions/20319813/how-to-check-list-containing-nan
+                            if np.isnan(normalized_embedding).any():
+                                # for issue #11827  float values are not json compliant
+                                logger.warning(f"Normalized embedding is nan: {normalized_embedding}")
+                                continue
                             embedding_queue_embeddings.append(normalized_embedding)
                         except IntegrityError:
                             db.session.rollback()