fix: support BGE-M3 embedding (dense_embedding fallback) (#169)

BGE-M3 returns dense_embedding instead of embedding; use dense_embedding
as fallback when embedding is None to avoid TypeError.

Made-with: Cursor

Co-authored-by: AleksandrMordvinov <mad190192@gmail.com>
This commit is contained in:
Aleksandr Mordvinov 2026-03-20 13:05:04 +07:00 committed by GitHub
parent 4f63fbf197
commit 33f6822792
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -45,7 +45,9 @@ class OpenAIEmbeddingModel(BaseEmbeddingModel):
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):