Skip to content

Commit f494ffb

Browse files
author
Cenk Tekin
committed
docs: add OpenAI-compatible embedding provider documentation
Covers provider selection, Gemini free tier setup, OpenAI, and other compatible APIs (Groq, vLLM, LiteLLM). Updates Config table with new environment variables and aliases.
1 parent e7e9e62 commit f494ffb

1 file changed

Lines changed: 72 additions & 5 deletions

File tree

README.md

Lines changed: 72 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,68 @@ npm install
132132
npm run build
133133
```
134134

135+
## Embedding Providers
136+
137+
Context+ supports two embedding backends controlled by `CONTEXTPLUS_EMBED_PROVIDER`:
138+
139+
| Provider | Value | Requires | Best For |
140+
|----------|-------|----------|----------|
141+
| **Ollama** (default) | `ollama` | Local Ollama server | Free, offline, private |
142+
| **OpenAI-compatible** | `openai` | API key | Gemini (free tier), OpenAI, Groq, vLLM |
143+
144+
### Ollama (Default)
145+
146+
No extra configuration needed. Just run Ollama with an embedding model:
147+
148+
```bash
149+
ollama pull nomic-embed-text
150+
ollama serve
151+
```
152+
153+
### Google Gemini (Free Tier)
154+
155+
```json
156+
{
157+
"env": {
158+
"CONTEXTPLUS_EMBED_PROVIDER": "openai",
159+
"CONTEXTPLUS_OPENAI_API_KEY": "YOUR_GEMINI_API_KEY",
160+
"CONTEXTPLUS_OPENAI_BASE_URL": "https://generativelanguage.googleapis.com/v1beta/openai",
161+
"CONTEXTPLUS_OPENAI_EMBED_MODEL": "text-embedding-004"
162+
}
163+
}
164+
```
165+
166+
Get a free API key at [Google AI Studio](https://aistudio.google.com/apikey).
167+
168+
### OpenAI
169+
170+
```json
171+
{
172+
"env": {
173+
"CONTEXTPLUS_EMBED_PROVIDER": "openai",
174+
"OPENAI_API_KEY": "sk-...",
175+
"OPENAI_EMBED_MODEL": "text-embedding-3-small"
176+
}
177+
}
178+
```
179+
180+
### Other OpenAI-compatible APIs (Groq, vLLM, LiteLLM)
181+
182+
Any endpoint implementing the [OpenAI Embeddings API](https://platform.openai.com/docs/api-reference/embeddings) works:
183+
184+
```json
185+
{
186+
"env": {
187+
"CONTEXTPLUS_EMBED_PROVIDER": "openai",
188+
"CONTEXTPLUS_OPENAI_API_KEY": "YOUR_KEY",
189+
"CONTEXTPLUS_OPENAI_BASE_URL": "https://your-proxy.example.com/v1",
190+
"CONTEXTPLUS_OPENAI_EMBED_MODEL": "your-model-name"
191+
}
192+
}
193+
```
194+
195+
> **Note:** The `semantic_navigate` tool also uses a chat model for cluster labeling. When using the `openai` provider, set `CONTEXTPLUS_OPENAI_CHAT_MODEL` (default: `gpt-4o-mini`).
196+
135197
## Architecture
136198

137199
Three layers built with TypeScript over stdio using the Model Context Protocol SDK:
@@ -146,11 +208,16 @@ Three layers built with TypeScript over stdio using the Model Context Protocol S
146208

147209
## Config
148210

149-
| Variable | Type | Default | Description |
150-
| --------------------------------------- | ------------------------- | ------------------ | ------------------------------------------------------------- |
151-
| `OLLAMA_EMBED_MODEL` | string | `nomic-embed-text` | Embedding model |
152-
| `OLLAMA_API_KEY` | string | - | Ollama Cloud API key |
153-
| `OLLAMA_CHAT_MODEL` | string | `llama3.2` | Chat model for cluster labeling |
211+
| Variable | Type | Default | Description |
212+
| --------------------------------------- | ------------------------- | -------------------------------------- | ------------------------------------------------------------- |
213+
| `CONTEXTPLUS_EMBED_PROVIDER` | string | `ollama` | Embedding backend: `ollama` or `openai` |
214+
| `OLLAMA_EMBED_MODEL` | string | `nomic-embed-text` | Ollama embedding model |
215+
| `OLLAMA_API_KEY` | string | - | Ollama Cloud API key |
216+
| `OLLAMA_CHAT_MODEL` | string | `llama3.2` | Ollama chat model for cluster labeling |
217+
| `CONTEXTPLUS_OPENAI_API_KEY` | string | - | API key for OpenAI-compatible provider (alias: `OPENAI_API_KEY`) |
218+
| `CONTEXTPLUS_OPENAI_BASE_URL` | string | `https://api.openai.com/v1` | OpenAI-compatible endpoint URL (alias: `OPENAI_BASE_URL`) |
219+
| `CONTEXTPLUS_OPENAI_EMBED_MODEL` | string | `text-embedding-3-small` | OpenAI-compatible embedding model (alias: `OPENAI_EMBED_MODEL`) |
220+
| `CONTEXTPLUS_OPENAI_CHAT_MODEL` | string | `gpt-4o-mini` | OpenAI-compatible chat model for labeling (alias: `OPENAI_CHAT_MODEL`) |
154221
| `CONTEXTPLUS_EMBED_BATCH_SIZE` | string (parsed as number) | `8` | Embedding batch size per GPU call, clamped to 5-10 |
155222
| `CONTEXTPLUS_EMBED_CHUNK_CHARS` | string (parsed as number) | `2000` | Per-chunk chars before merge, clamped to 256-8000 |
156223
| `CONTEXTPLUS_MAX_EMBED_FILE_SIZE` | string (parsed as number) | `51200` | Skip non-code text files larger than this many bytes |

0 commit comments

Comments
 (0)