Skip to content

Commit b01c03e

Browse files
author
Cenk Tekin
committed
fix: address Copilot review feedback
1. Cache key now includes provider+model name to prevent stale vector reuse when switching embedding providers (would cause NaN scores) 2. Error hint in semantic-navigate references embed model instead of chat model for embedding failures
1 parent a0f9404 commit b01c03e

2 files changed

Lines changed: 4 additions & 2 deletions

File tree

src/core/embeddings.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ const OPENAI_EMBED_MODEL = process.env.CONTEXTPLUS_OPENAI_EMBED_MODEL ?? process
8080
const OPENAI_API_KEY = process.env.CONTEXTPLUS_OPENAI_API_KEY ?? process.env.OPENAI_API_KEY ?? "";
8181
const OPENAI_BASE_URL = process.env.CONTEXTPLUS_OPENAI_BASE_URL ?? process.env.OPENAI_BASE_URL ?? "https://api.openai.com/v1";
8282
const CACHE_DIR = ".mcp_data";
83-
const CACHE_FILE = "embeddings-cache.json";
83+
const ACTIVE_EMBED_MODEL = EMBED_PROVIDER === "openai" ? OPENAI_EMBED_MODEL : EMBED_MODEL;
84+
const CACHE_FILE = `embeddings-cache-${EMBED_PROVIDER}-${ACTIVE_EMBED_MODEL.replace(/[^a-zA-Z0-9._-]/g, "_")}.json`;
8485
const MIN_EMBED_BATCH_SIZE = 5;
8586
const MAX_EMBED_BATCH_SIZE = 10;
8687
const DEFAULT_EMBED_BATCH_SIZE = 8;

src/tools/semantic-navigate.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ interface ClusterNode {
2929
}
3030

3131
const EMBED_PROVIDER = (process.env.CONTEXTPLUS_EMBED_PROVIDER ?? "ollama").toLowerCase();
32+
const EMBED_MODEL = process.env.OLLAMA_EMBED_MODEL ?? "nomic-embed-text";
3233
const CHAT_MODEL = process.env.OLLAMA_CHAT_MODEL ?? "llama3.2";
3334
const OPENAI_CHAT_MODEL = process.env.CONTEXTPLUS_OPENAI_CHAT_MODEL ?? process.env.OPENAI_CHAT_MODEL ?? "gpt-4o-mini";
3435
const OPENAI_API_KEY = process.env.CONTEXTPLUS_OPENAI_API_KEY ?? process.env.OPENAI_API_KEY ?? "";
@@ -294,7 +295,7 @@ export async function semanticNavigate(options: SemanticNavigateOptions): Promis
294295
} catch (err) {
295296
const providerHint = EMBED_PROVIDER === "openai"
296297
? `Check CONTEXTPLUS_OPENAI_API_KEY and CONTEXTPLUS_OPENAI_BASE_URL.`
297-
: `Make sure Ollama is running with model ${CHAT_MODEL}.`;
298+
: `Make sure Ollama is running (check OLLAMA_HOST) and that the embedding model configured in OLLAMA_EMBED_MODEL is available.`;
298299
return `Embedding provider (${EMBED_PROVIDER}) not available: ${err instanceof Error ? err.message : String(err)}\n${providerHint}`;
299300
}
300301

0 commit comments

Comments
 (0)