You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The self-hosted server hard-codes the local embedding model to Xenova/bge-base-en-v1.5 (binary strings show only pool/batch/thread knobs: SUPERMEMORY_LOCAL_EMBEDDING_POOL_SIZE, …_BATCH_SIZE, …_WASM_THREADS, …_IDLE_TIMEOUT_MS — no model option).
bge-base-en-v1.5 is English-only. For non-English deployments this makes recall effectively unusable:
German memory "P78-Smoke: Klaus' Lieblings-Testfrucht ist die Physalis (Geheimcode PHYSALIS-88)." (status done, fresh v0.0.2 store)
German query, English query, even the verbatim tokenPHYSALIS-88 → {"results":[],"total":0}, thresholds down to 0.01 have no effect
Identical setup with English content + English query → found with score 0.83
So on the same healthy store: English in/out works, German content is unreachable. (We are running a fully-local German-language agent platform — every memory the agents write is German.)
Proposal
Add an env override, e.g.:
SUPERMEMORY_LOCAL_EMBEDDING_MODEL=Xenova/bge-m3 # or any transformers.js-compatible model id
SUPERMEMORY_LOCAL_EMBEDDING_DIMENSIONS=1024 # if it cannot be inferred
Multilingual candidates that work with transformers.js/ONNX today: Xenova/bge-m3, Xenova/multilingual-e5-base, Xenova/paraphrase-multilingual-MiniLM-L12-v2.
The model cache directory mechanism already exists (<data>/models/Xenova/…), so this is mostly plumbing the model id + dimension through worker init and the vector schema.
Problem
The self-hosted server hard-codes the local embedding model to
Xenova/bge-base-en-v1.5(binary strings show only pool/batch/thread knobs:SUPERMEMORY_LOCAL_EMBEDDING_POOL_SIZE,…_BATCH_SIZE,…_WASM_THREADS,…_IDLE_TIMEOUT_MS— no model option).bge-base-en-v1.5is English-only. For non-English deployments this makes recall effectively unusable:"P78-Smoke: Klaus' Lieblings-Testfrucht ist die Physalis (Geheimcode PHYSALIS-88)."(statusdone, fresh v0.0.2 store)PHYSALIS-88→{"results":[],"total":0}, thresholds down to 0.01 have no effectSo on the same healthy store: English in/out works, German content is unreachable. (We are running a fully-local German-language agent platform — every memory the agents write is German.)
Proposal
Add an env override, e.g.:
Xenova/bge-m3,Xenova/multilingual-e5-base,Xenova/paraphrase-multilingual-MiniLM-L12-v2.<data>/models/Xenova/…), so this is mostly plumbing the model id + dimension through worker init and the vector schema.reindexcommand would cover that (same ask as Self-hosted v0.0.2: search always returns total:0 on a store upgraded from v0.0.1 (fresh store works) #1103).Workarounds we considered (and why they're poor)
Happy to test an arm64 build with a multilingual model — we have a 100 % German repro on hand.