Skip to content

feat(embedding): configurable pooling and task prefixes - #394

Merged
EyJunge1 merged 2 commits into
tickernelz:mainfrom
EyJunge1:feat/embedding-pooling-prefixes
Oct 10, 2026
Merged

EyJunge1 merged 2 commits into
tickernelz:mainfrom
EyJunge1:feat/embedding-pooling-prefixes

Conversation

@EyJunge1

Copy link
Copy Markdown
Collaborator

Summary

  • Add configurable local embedding embeddingPooling (mean | cls | last_token), embeddingQueryPrefix / embeddingDocumentPrefix, and optional embeddingDtype override
  • Apply known-model presets (bge-m3 → CLS, e5 → query/passage prefixes, Qwen3-Embedding → last-token + instruct query prefix) when keys are unset; explicit config always wins
  • Keep Nomic embeddingUseTaskPrefixes as the fallback when custom/preset prefixes are unset; document re-embed requirement when pooling/prefixes change

Closes #392

Test plan

  • bun test (full suite)
  • bun run typecheck
  • bun run check
  • Smoke: set embeddingModel to Xenova/bge-m3 and confirm warmup + search without patching dist/
  • Smoke: set embeddingPooling / custom prefixes explicitly and confirm they override presets

Allow mean/cls/last_token pooling, custom query/document prefixes, optional
dtype override, and known-model presets so bge-m3/e5/Qwen3 work without
patching dist. Closes tickernelz#392.
Prefer CONFIG.embeddingDtype over resolveLocalOnnxDtype from tickernelz#393 so
explicit config still wins after the upstream merge.
@EyJunge1
EyJunge1 merged commit f8e3f33 into tickernelz:main Oct 10, 2026
13 checks passed
@EyJunge1 EyJunge1 mentioned this pull request Oct 10, 2026
2 of 9 tasks
@EyJunge1
EyJunge1 deleted the feat/embedding-pooling-prefixes branch October 15, 2026 21:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: configurable pooling + query/document prefix for local embedding models (bge-m3 / Qwen3-Embedding / e5)

1 participant