Find a file
Bogdan Abaev 958153ff26 streamline changing embed models
Move the generation of mean vectors into its own
Zotero.Embeddings.Calibration object from tests.

Now a test run is not required to get mean vector
for a newly added model. Instead, the corpus on which
we generate embeddings to calculate mean vector, as well
as the logic for actual mean vector calculation, lives
in Zotero.Embeddings.Calibration so it can be done on
demand - at the start of the first indexing pass for a
model that hasn't been measured yet.

Each passage from Zotero.Embeddings.Calibration corpus
also has a matching query, to which the passage is
an expected search result. Those queries are also embedded
during calibration, which is used to calculate the appropriate
min score cutoff and max display score for relevance bar.
Score floor is computed by embedding all queries and passages,
finding the similarity between all pairs and locating the cutoff
that only 1% of non-matching query/passage pairs exceed.
Max display score is the median of the matching pairs, so
half of genuine matches fill the bar completely.

Calculated score cutoff, max display value and mean vector
are stored in the embeddings database to be reused later.

During calibration of language-specific models, passages/queries
for languages that the model cannot handle are excluded
(e.g drop russian/chinese/spanish that english models are not meant to handle).
For this, model config expects a new optional language field.
A model that omits it is measured against the whole corpus.

Chunk size is now bounded by CHUNK_MAX_TOKENS rather than by
the model's context window, which still caps it. A model with
a large window would otherwise stop notes being chunked at all,
putting a whole note into a single vector and defeating scoring
an item by its best chunk.

With the mean vector and both score bounds measured rather than
configured, each model's hardcoded meanVector, minScore and
maxDisplayScore are gone from MODELS, along with an unused files
array. A model entry is now only facts that can be read off its
model card.

Added bge-small-zh-v1.5 as a model specifically for chinese,
as well as a number of multilingual and english models
for testing.
2026-08-11 11:27:10 -07:00
.github/workflows CI: Don't run duplicate jobs for same-repo pull requests 2026-07-08 10:50:32 -04:00
app Restore dxcompiler.dll on Windows for WebGPU and leave WebGPU pref on 2026-08-05 14:10:04 -04:00
chrome streamline changing embed models 2026-08-11 11:27:10 -07:00
defaults/preferences Replace the best-match top-K cutoff with a ranked Relevance column 2026-08-05 15:26:55 -04:00
document-worker@6d0c0ce45d Update document-worker submodule 2026-07-15 12:52:00 -04:00
js-build Add SDT support 2026-06-12 13:47:08 +03:00
note-editor@acec74d09b Improve undo/redo in the note editor (#3398) 2026-07-31 14:22:53 +02:00
reader@c6edbfff75 Update reader submodule 2026-07-20 10:50:56 -04:00
resource Generate embeddings with Firefox's inference runtime 2026-08-05 15:41:41 -04:00
scripts Add script for pulling Fluent translations 2026-01-25 22:15:29 -05:00
scss Search note and annotation content 2026-08-11 11:27:04 -07:00
styles@dff7452b24 Update translators, styles, CSL locales, and renamed-styles.json 2026-04-02 15:51:43 -04:00
test streamline changing embed models 2026-08-11 11:27:10 -07:00
translators@60f2d542ff Update translators submodule 2026-07-15 12:52:54 -04:00
types/gecko fx140: Update type definitions 2025-07-30 22:30:37 -04:00
.babelrc Use production builds of react libraries (#4482) 2024-08-02 03:43:02 -04:00
.gitattributes local semantic search on abstracts 2026-08-05 15:26:55 -04:00
.gitignore Use user-provided codesign script for Windows signing 2024-04-08 10:12:58 +01:00
.gitmodules Rename pdf-worker submodule to document-worker 2026-04-22 15:50:02 -04:00
chrome.manifest Remove old citation dialogs (#5177) 2025-04-02 05:26:06 -04:00
CLAUDE.md Rename pdf-worker submodule to document-worker 2026-04-22 15:50:02 -04:00
CONTRIBUTING.md Add "support questions" to CONTRIBUTING.md 2022-12-01 05:10:42 -05:00
COPYING Update COPYING 2018-03-26 11:27:48 +02:00
eslint.config.mjs Convert ItemPane{SectionElement,Container}Base to ES modules 2026-05-18 15:48:31 -04:00
package-lock.json Update package-lock.json 2026-01-29 13:22:13 -05:00
package.json Upgrade ftl-tx. Fix #5671. 2025-12-20 02:22:23 +01:00
README.md "Zotero wiki" → "Zotero documentation" in app build README 2023-04-26 04:40:22 -04:00
update.rdf Update Fx minVersion to 45 2016-12-13 09:12:55 -05:00
version Update version to 11.0 2026-08-03 14:14:05 -04:00

Zotero

CI

Zotero is a free, easy-to-use tool to help you collect, organize, cite, and share your research sources.

Please post feature requests or bug reports to the Zotero Forums. If you're having trouble with Zotero, see Getting Help.

For more information on how to use this source code, see the Zotero documentation.