Семантикалық іздеуді қосу
Notarium-дегі толық мәтіндік іздеу (FTS) әрқашан және баптаусыз жұмыс істейді. Семантикалық (векторлық) іздеу — міндетті емес мүмкіндік: ол мағына бойынша гибридті ранжирлеу береді, бірақ ауыр нативті стекті (onnxruntime + sqlite-vec, дискіде ~660 МБ) және алғаш қосқанда жүктелетін жергілікті эмбеддинг моделін (дискіде ~600 МБ және жүздеген МБ RAM) талап етеді. Сондықтан ол әдепкіде өшірулі әрі саналы түрде қосылады. Іздеу ішкі жағынан қалай құрылғаны — Концепциялар: іздеу бөлімінде.
Екі тәуелсіз ауыстырғыш
Екі деңгейді ажырата білу маңызды — орнату мен рантайм:
- Орнату — нативті векторлық стек
node_modulesішінде бар-жоғы. Docker-образ оны әрқашан алып жүреді, сондықтан контейнерде қосу қайта құрастыруды қажет етпейді. Бастапқы кодтан жұмыс істегенде стандарттыmake depsоны орнатпайды (node_modulesжергілікті орнатуы ~660 МБ жеңілірек болады) — жергілікті векторлық жұмыс үшінmake deps-vectorкерек. - Рантайм —
VECTOR_SEARCHайнымалысы. Жарияланған образда ол әдепкідеoff.
Docker-дегі семантика үшін рантайм-ауыстырғышты қосу жеткілікті — стек әлдеқашан орнында.
Қосу
docker run -d --name notarium \
-p 3000:3000 \
-v notarium-data:/data \
-e VECTOR_SEARCH=on \
docouno/notarium:latest
(Бір /data томы бүкіл күйді ұстайды — қызметтік дерекқор, индекстер, сіздің жазбаларыңыз, экспорт артефактілері; кәдімгі іске қосудағыдай, Орнату қараңыз. Мұнда оған тек VECTOR_SEARCH=on қосылған.)
Алғаш қосқанда әдепкі модель (bge-m3) жүктеледі (дискіде ~600 МБ) және жүздеген МБ RAM ұстайды. Индекстеу фондық режимде жүреді: толық мәтіндік іздеу бірден қолжетімді, векторлар кейін қуып жетеді.
Модель деңгейлері
Модель EMBED_MODEL + EMBED_DIMENSIONS жұбымен таңдалады (өлшемділік модельмен міндетті түрде сәйкес келуі керек) — бұл бір образдағы рантайм-баптау, бөлек құрастыру емес:
| Деңгей | Айнымалылар | RAM | Қашан |
|---|---|---|---|
| off | VECTOR_SEARCH=off | 0 | Әлсіз машина немесе кілт сөздер бойынша іздеу жеткілікті. Образ үшін әдепкі. |
| compact | VECTOR_SEARCH=on, EMBED_MODEL=Xenova/multilingual-e5-small, EMBED_DIMENSIONS=384 | ~120 МБ | Homelab, шағын VPS. |
| full | VECTOR_SEARCH=on (әдепкі: bge-m3, 1024) | ~600 МБ | Қуатты машина; 100+ тіл, ұзын контекст. |
Компакт деңгей (e5) EMBED_QUERY_PREFIX="query: " және EMBED_PASSAGE_PREFIX="passage: " префикстерін талап етеді — оларды ұмыту іздеу сапасын үнсіз төмендетеді. Симметриялы bge-m3 үшін, керісінше, префикстерді қоюдың қажеті жоқ.
Шектеулі машинадағы ресурстар
swap-сыз әрі ~6 ГБ RAM-мен жұмыс істейтін хостта bge-m3 бастапқы индекстеуі жады шегіне тіреліп қалуы мүмкін. Екі тетік: compact деңгейін (e5-small) алыңыз немесе EMBED_CPU_MEM_ARENA=off қойыңыз — бұл шамалы баяулау есебінен тұтынуды ~1.9 ГБ шамасында ұстайды. Эмбеддинг параметрлерінің толық тізімі — Анықтамалықта.
Толық мәтіндік іздеуге қайту
Егер VECTOR_SEARCH=off болса немесе нативті стек қандай да бір себеппен жүктелмесе, іздеу толық мәтін бойынша жұмысын жалғастырады — қатесіз, нәтижелер дәл сол күйінде көрінеді. Семантика — әрқашан жұмыс істейтін FTS үстіндегі қосымша ранжирлеу арнасы, міндетті тәуелділік емес. Векторсыз дана — толығымен жұмысқа қабілетті дана.