From 476e208d473dcc10e349ca577f3141a33c51db1d Mon Sep 17 00:00:00 2001 From: AleksandrMordvinov Date: Thu, 19 Mar 2026 21:22:40 +0700 Subject: [PATCH] fix: support BGE-M3 embedding (dense_embedding fallback) BGE-M3 returns dense_embedding instead of embedding; use dense_embedding as fallback when embedding is None to avoid TypeError. Made-with: Cursor --- reme/core/embedding/openai_embedding_model.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/reme/core/embedding/openai_embedding_model.py b/reme/core/embedding/openai_embedding_model.py index 3857f782..d686c83c 100644 --- a/reme/core/embedding/openai_embedding_model.py +++ b/reme/core/embedding/openai_embedding_model.py @@ -45,7 +45,9 @@ async def _get_embeddings(self, input_text: list[str], **kwargs) -> list[list[fl result_emb = [[] for _ in range(len(input_text))] for emb in completion.data: - result_emb[emb.index] = emb.embedding + # BGE-M3 returns dense_embedding instead of embedding; use as fallback + vec = getattr(emb, "embedding", None) or getattr(emb, "dense_embedding", None) + result_emb[emb.index] = list(vec) if vec is not None else [] return result_emb async def start(self):