Skip to content

Commit e6643dd

Browse files
committed
support more ollama embeddingmodels
Signed-off-by: ChengZi <chen.zhang@zilliz.com>
1 parent e1e60ca commit e6643dd

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

deepsearcher/embedding/ollama_embedding.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,26 @@ def __init__(self, model="bge-m3", batch_size=32, **kwargs):
4040
else:
4141
base_url = "http://localhost:11434/"
4242

43+
# Initialize client first
44+
self.client = Client(host=base_url, **kwargs)
45+
self.batch_size = batch_size
46+
4347
if "dimension" in kwargs:
4448
dimension = kwargs.pop("dimension")
4549
else:
46-
dimension = OLLAMA_MODEL_DIM_MAP[model]
50+
if model in OLLAMA_MODEL_DIM_MAP:
51+
dimension = OLLAMA_MODEL_DIM_MAP[model]
52+
else:
53+
try:
54+
dummy_response = self.client.embed(model=self.model, input="test")
55+
dimension = len(dummy_response["embeddings"][0])
56+
except Exception as e:
57+
print(
58+
f"Warning: Could not determine model dimension, using default 1024. Error: {e}"
59+
)
60+
dimension = 1024
61+
4762
self.dim = dimension
48-
self.client = Client(host=base_url, **kwargs)
49-
self.batch_size = batch_size
5063

5164
def embed_query(self, text: str) -> List[float]:
5265
"""

0 commit comments

Comments
 (0)