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
feat(embedding): add jina and mistral providers, fix stale install hints (#154)
Compared MFS's embedding provider set against upstream Memsearch (the
project this code was originally adapted from) and found two gaps:
- jina and mistral are supported upstream but missing here. Both are
ported over (jina talks to Jina's embeddings REST API directly over
the core httpx dep, no extra needed; mistral uses the official SDK
behind a new `mistral` extra), wired into the provider registry, the
setup wizard, and docs/providers.md.
- openai.py, voyage.py, ollama.py, and local.py still told users to
`pip install memsearch` in their module docstrings — leftover from
when this code was copied over. Fixed to say mfs-server.
Signed-off-by: Cheney Zhang <chen.zhang@zilliz.com>
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -638,7 +638,7 @@ What each section of `server.toml` configures:
638
638
639
639
| Section | Configures | Default | Swap in |
640
640
|---|---|---|---|
641
-
|`[embedding]`| embedding provider · model · dim | local ONNX (BGE-M3 int8, no key) |`openai` · `gemini` · `voyage` · `ollama` · `local` — needs that provider's key/extra |
641
+
|`[embedding]`| embedding provider · model · dim | local ONNX (BGE-M3 int8, no key) |`openai` · `gemini` · `voyage` · `jina` · `mistral` · `ollama` · `local` — needs that provider's key/extra |
642
642
|`[milvus]`| vector store | Milvus Lite (file under `~/.mfs/`) | self-hosted Milvus or [Zilliz Cloud](https://cloud.zilliz.com/signup?utm_source=github&utm_medium=referral&utm_campaign=mfs-readme) — set `uri` + `token`|
643
643
|`[database]`| metadata + transformation-cache DB | SQLite (file) | Postgres — set `dsn`|
644
644
|`[artifact_cache]`| converted-blob cache | local fs under `~/.mfs/cache`| size / eviction knobs |
| Google Gemini embeddings |`gemini` embeddings |`uv tool install "mfs-server[gemini]"`, then `mfs-server setup --section embedding`|`GOOGLE_API_KEY`, or Vertex AI auth for the embedding SDK |
| Local Ollama embeddings |`ollama` embeddings |`uv tool install "mfs-server[ollama]"`, then `mfs-server setup --section embedding`| Running Ollama server; `OLLAMA_HOST` is optional |
20
22
| Local sentence-transformers embeddings |`local` embeddings |`uv tool install "mfs-server[local]"`, then `mfs-server setup --section embedding`| None; this extra pulls the sentence-transformers stack |
21
23
| Image-description and summary setup |`openai`, `anthropic`, or `gemini` LLM/VLM |`mfs-server setup --section description` (and `--section summary`) | Provider key for the selected LLM/VLM provider |
22
24
23
25
Provider names are exact. The supported embedding names are `openai`, `onnx`,
24
-
`gemini`, `voyage`, `ollama`, and `local`.
26
+
`gemini`, `voyage`, `jina`, `mistral`, `ollama`, and `local`.
25
27
26
28
## Install Paths
27
29
28
-
The base install includes the OpenAI SDK and the default ONNX embedding stack:
30
+
The base install includes the OpenAI SDK and the default ONNX embedding stack.
31
+
`jina` also needs no extra — it talks to Jina's REST API over the core `httpx`
32
+
dependency:
29
33
30
34
```bash
31
35
uv tool install mfs-server
@@ -36,14 +40,16 @@ Alternate provider extras are separate:
36
40
```bash
37
41
uv tool install "mfs-server[gemini]"
38
42
uv tool install "mfs-server[voyage]"
43
+
uv tool install "mfs-server[mistral]"
39
44
uv tool install "mfs-server[ollama]"
40
45
uv tool install "mfs-server[local]"
41
46
uv tool install "mfs-server[anthropic]"
42
47
uv tool install "mfs-server[all-providers]"
43
48
```
44
49
45
-
`all-providers` installs Gemini, Voyage, Ollama, and Anthropic provider
46
-
dependencies. It does not include `local`, because `local` pulls the larger
50
+
`all-providers` installs Gemini, Voyage, Mistral, Ollama, and Anthropic
51
+
provider dependencies (`jina` needs no extra, so it's already covered). It
52
+
does not include `local`, because `local` pulls the larger
47
53
sentence-transformers dependency stack.
48
54
49
55
## Embedding Providers
@@ -57,6 +63,8 @@ models.
57
63
|`openai`|`text-embedding-3-small`| 1536 for the default model | Core |`OPENAI_API_KEY`; `OPENAI_BASE_URL` is optional | No local model download. Unknown model dimensions may require a trial embedding call. |
58
64
|`gemini`|`gemini-embedding-001`| 768 for the default model |`uv tool install "mfs-server[gemini]"` or `all-providers`|`GOOGLE_API_KEY`, or Vertex AI auth with `GOOGLE_GENAI_USE_VERTEXAI=true`| Known model dimensions use a local table; unknown models require a trial embedding call. |
59
65
|`voyage`|`voyage-3-lite`| 512 for the default model |`uv tool install "mfs-server[voyage]"` or `all-providers`|`VOYAGE_API_KEY`| Known model dimensions use a local table; unknown models require a trial embedding call. |
66
+
|`jina`|`jina-embeddings-v4`| 2048 for the default model (Matryoshka-truncatable 256–2048) | Core (talks to the Jina REST API over `httpx`) |`JINA_API_KEY`| No local model download. Known model dimensions use a local table; unknown models fall back to 2048. |
67
+
|`mistral`|`mistral-embed`| 1024 for the default model |`uv tool install "mfs-server[mistral]"` or `all-providers`|`MISTRAL_API_KEY`| Known model dimensions use a local table; unknown models require a trial embedding call. |
60
68
|`ollama`|`nomic-embed-text`| Detected by a trial embed against the selected Ollama model |`uv tool install "mfs-server[ollama]"` or `all-providers`| Running Ollama server; `OLLAMA_HOST` can point at a non-default host | The selected model must be available to the Ollama server before dimension probing and embedding can succeed. |
61
69
|`local`|`all-MiniLM-L6-v2`| Detected from sentence-transformers model metadata |`uv tool install "mfs-server[local]"`| No API key |`mfs-server run` and `mfs-server worker` preload the sentence-transformers model on the detected device: CUDA, MPS, then CPU. |
0 commit comments