Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions backend/src/core/cfg.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,9 @@ export const env = {
openai_model: process.env.OM_OPENAI_MODEL,
gemini_key:
process.env.GEMINI_API_KEY || process.env.OM_GEMINI_API_KEY || "",
aws_model: str(
process.env.AWS_REGION,
process.env.AWS_ACCESS_KEY_ID,
process.env.AWS_SECRET_ACCESS_KEY
),

AWS_REGION: process.env.AWS_REGION || "",
AWS_ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID || "",
AWS_SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY || "",
ollama_url: str(
process.env.OLLAMA_URL || process.env.OM_OLLAMA_URL,
"http://localhost:11434",
Expand Down
4 changes: 2 additions & 2 deletions backend/src/memory/embed.ts
Original file line number Diff line number Diff line change
Expand Up @@ -153,11 +153,11 @@ async function emb_gemini(
): Promise<Record<string, number[]>> {
if (!env.gemini_key) throw new Error("Gemini key missing");
const prom = gem_q.then(async () => {
const url = `https://generativelanguage.googleapis.com/v1beta/models/embedding-001:batchEmbedContents?key=${env.gemini_key}`;
const url = `https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:batchEmbedContents?key=${env.gemini_key}`;
for (let a = 0; a < 3; a++) {
try {
const reqs = Object.entries(txts).map(([s, t]) => ({
model: "models/embedding-001",
model: "models/text-embedding-004",
content: { parts: [{ text: t }] },
taskType: task_map[s] || task_map.semantic,
}));
Expand Down
10 changes: 10 additions & 0 deletions backend/src/server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ console.log(`[CONFIG] Vector Dimension: ${env.vec_dim}`);
console.log(`[CONFIG] Cache Segments: ${env.cache_segments}`);
console.log(`[CONFIG] Max Active Queries: ${env.max_active}`);

// Warn about configuration mismatch that causes embedding incompatibility
if (env.emb_kind !== "synthetic" && (tier === "hybrid" || tier === "fast")) {
console.warn(
`[CONFIG] ⚠️ WARNING: Embedding configuration mismatch detected!\n` +
` OM_EMBEDDINGS=${env.emb_kind} but OM_TIER=${tier}\n` +
` Storage will use ${env.emb_kind} embeddings, but queries will use synthetic embeddings.\n` +
` This causes semantic search to fail. Set OM_TIER=deep to fix.`
);
}

app.use(req_tracker_mw());

app.use((req: any, res: any, next: any) => {
Expand Down
13 changes: 7 additions & 6 deletions models.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,35 +8,35 @@
episodic:
ollama: nomic-embed-text
openai: text-embedding-3-small
gemini: models/embedding-001
gemini: models/text-embedding-004
aws: amazon.titan-embed-text-v2:0
local: all-MiniLM-L6-v2

semantic:
ollama: nomic-embed-text
openai: text-embedding-3-small
gemini: models/embedding-001
gemini: models/text-embedding-004
aws: amazon.titan-embed-text-v2:0
local: all-MiniLM-L6-v2

procedural:
ollama: nomic-embed-text
openai: text-embedding-3-small
gemini: models/embedding-001
gemini: models/text-embedding-004
aws: amazon.titan-embed-text-v2:0
local: all-MiniLM-L6-v2

emotional:
ollama: nomic-embed-text
openai: text-embedding-3-small
gemini: models/embedding-001
gemini: models/text-embedding-004
aws: amazon.titan-embed-text-v2:0
local: all-MiniLM-L6-v2

reflective:
ollama: nomic-embed-text
openai: text-embedding-3-large
gemini: models/embedding-001
gemini: models/text-embedding-004
aws: amazon.titan-embed-text-v2:0
local: all-mpnet-base-v2
# Available Ollama models (pull with: ollama pull <model>)
Expand All @@ -50,7 +50,8 @@ reflective:
# - text-embedding-3-large (3072d)

# Gemini models:
# - models/embedding-001 (768d)
# - models/text-embedding-004 (768d) - latest
# - models/embedding-001 (768d) - deprecated

#AWS models:
# - amazon.titan-embed-text-v2:0 (1024d, 512d, 256)
Expand Down