feat(embedding): add bge-small-en-v1.5-f16 as local embedding model#2233
feat(embedding): add bge-small-en-v1.5-f16 as local embedding model#2233hammerhoundai wants to merge 2 commits into
Conversation
Add English-optimized BGE embedding model as a built-in local option alongside the existing Chinese bge-small-zh-v1.5-f16. - Model: bge-small-en-v1.5-f16 (384-dim, ~65MB f16 GGUF) - Auto-downloaded to ~/.cache/openviking/models/ on first use - No query instruction needed (unlike Chinese variant) - Runs on CPU, no GPU required Usage in ov.conf: embedding.dense.provider = "local" embedding.dense.model = "bge-small-en-v1.5-f16" embedding.dense.dimension = 384
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
|
The filename mismatch is intentional and correct. The _download_model method saves the downloaded content to target (derived from spec.filename), not from the URL filename. The model downloads from the HuggingFace URL and is saved as bge-small-en-v1.5-f16.gguf locally. This was tested and verified working — produces correct 384-dim embeddings. |
Add bge-small-en-v1.5-f16 to LOCAL_GGUF_PRESETS so it appears as an option during 'openviking-server init' llama.cpp setup flow.
Summary
Adds
bge-small-en-v1.5-f16as a built-in local embedding model option alongside the existing Chinesebge-small-zh-v1.5-f16.Type of Change
Motivation
The only local embedding model currently supported is
bge-small-zh-v1.5-f16, which is optimized for Chinese text. Non-Chinese users following the quickstart guide get a suboptimal embedding model with no way to select an English alternative without patching source code.Changes
bge-small-en-v1.5-f16toLOCAL_DENSE_MODEL_SPECS(384-dim, ~65MB f16 GGUF from HuggingFace)~/.cache/openviking/models/on first use (same pattern as the Chinese model)Usage
{ "embedding": { "dense": { "provider": "local", "model": "bge-small-en-v1.5-f16", "dimension": 384 } } }Testing
Suggestion
It would also be worth updating
openviking-server initto offer both language variants as options during setup, so users can pick the right one at config time.Checklist
local_embedders.pychanged; no test coverage impacted)