You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub鈥檚 verified signature.
Added five predefined embedding models: Nomic v1.5, Multilingual E5 large, BGE large en v1.5, Qwen3 Embedding 0.6B, and mxbai embed large v1, each selectable through NewModel.
Added NewGeneralModel for template-free models, so any OpenAI-compatible model or vector size works without a dedicated type.
Added caller-controlled query task type. Search accepts an optional task, and each task-aware model exposes its own tasks (for example TaskGemma, TaskNomic); retrieval-only models reject a task instead of silently ignoring it.
Split the embedder into two injected parts: a transport client (AiClient) that owns the wire protocol and a model (EmbeddingModel) that owns the prompt templates.
Reorganized the embedder into client and model subpackages.
Moved the search composition into the internal pipeline package, matching how indexing is structured.
Renamed the Embedder interface to AiClient (breaking).
Renamed OpenAIEmbedder to OpenAIClient (breaking).
Renamed Model to EmbeddingModel (breaking).
Removed the default embedding server base URL, which must now be set explicitly (breaking).
Added a README architecture diagram, a "What semantic search is" intro section, and a table of contents.