Skip to content

Move the semantic search out of the open core; embed the corpus with Gradle - #95

Merged
kdroidFilter merged 2 commits into
masterfrom
feat/semantic-open-core
Oct 7, 2026
Merged

kdroidFilter merged 2 commits into
masterfrom
feat/semantic-open-core

Conversation

@kdroidFilter

Copy link
Copy Markdown
Owner

Summary

  • The embedding model, its embedder and the hybrid engine move to the private seforim-semantic package (Zayit's official builds). The public DB bundle no longer carries the model; DownloadEmbedModel is removed.
  • New :searchindex:embedCorpus: with the token that reads seforim-semantic (the siddur's, or gh), buildLuceneIndexDefault embeds the corpus into the index's dense vectors, with no Python. fp32 on an NVIDIA GPU (Linux x64), with CUDA 12.8 / cuDNN 9.10 fetched from NVIDIA's redistributables (sha256-checked, cached in the Gradle user home, -PcudaArchivesDir for archives at hand), else int8 on the CPU.
  • Without the token (community builds, public CI), nothing changes: the index is lexical only. -PvectorsBin and -PnoVectors still apply.

Test plan

  • embedCorpus on a 13,372-line sample: GPU, ~900 lines/s; vectors identical to the former Python ones (cosine mean 1.00000, min 0.99999), same books and base flags
  • Resolution from GitHub Packages (0.3.0), local Maven cache cleared
  • :search compiles and tests pass
  • Full corpus generation

The embedding model, its embedder and the hybrid engine now live in the
private seforim-semantic package (Zayit's official builds). The public bundle
no longer carries the model, and DownloadEmbedModel is gone. The generator
still indexes dense vectors given -PvectorsBin.

Signed-off-by: Elie Gambache <elyahou.hadass@gmail.com>
…tic package is readable

With the token that reads seforim-semantic (the siddur's, as in Zayit, or gh),
buildLuceneIndexDefault depends on embedCorpus, which runs the package's
EmbedCorpus: fp32 model on an NVIDIA GPU with the CUDA 12 / cuDNN 9 runtime
fetched from NVIDIA's redistributables (-PcudaArchivesDir for archives at
hand), else int8 on the CPU. No Python. Community builds stay lexical only.

Signed-off-by: Elie Gambache <elyahou.hadass@gmail.com>
@kdroidFilter
kdroidFilter merged commit 6b24226 into master Oct 7, 2026
1 check passed
@kdroidFilter
kdroidFilter deleted the feat/semantic-open-core branch October 7, 2026 21:04
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.

1 participant