# Проверка векторного поиска по коду 1С Дата проверки: 2026-07-26. База: `upo_test`. ## Контур - актуальный SQL-derived индекс адаптера: 1 080 модулей, 22 538 chunks; - очередь изменений: 0, snapshot чистый; - модель: `Qwen3-Embedding-0.6B-GGUF`, `Q8_0`; - runtime: `llama.cpp`, CPU-only на Ryzen 9 5900X; - endpoint: `http://docker-gpu.cin.su:8082/v1/embeddings`; - вектор модели: 1024, сохраняемый Matryoshka-срез: 384; - RTX 4090 сервисом эмбеддингов не используется. ## Измерения Прогретый короткий запрос к endpoint: 0,03–0,08 с. Индексация 100 процедур и функций длиной до 1 000 символов заняла 54,52 с, ошибок и конфликтов нет. Контрольные запросы к строгому поиску: | Запрос | Top-1 | Время | |---|---|---:| | проверить является ли объект документом | `ЭтоДокумент` | 0,70 с | | преобразовать число из строки | `ЧислоИзСтроки` | 0,44 с | | добавить реквизит в HTML представление | `ДобавитьРеквизитКHTML` | 0,50 с | Каждый результат был повторно проверен по live SQL. Чтение `read_selector` вернуло точное тело `ЭтоДокумент`, а не сохранённый текст из векторного кеша. ## Решение по отдельной векторной БД Пока не добавлять. SQLite остаётся достаточным для текущего инкрементального контура и проще связывает `chunk_id`, `text_sha1`, outbox и проверку актуальности. Векторный кеш не является источником истины. Повторно оценить ANN-хранилище после заполнения не менее 5 000 актуальных 384-мерных vectors. Практические триггеры: - p95 строгого поиска выше 1 секунды; - более 50 000 актуальных chunks; - SQLite-файл адаптера больше 1 ГиБ из-за embeddings. Если триггер сработает, Qdrant/pgvector должен быть только производной копией: ключ `chunk_id`, обязательный `text_sha1`, namespace базы/модели/размерности, удаление через outbox. Перед ответом адаптер всё равно проверяет live SQL. ## Выявленный следующий приоритет Глобально найденные активные модули пока часто имеют `object_ref=null`. Безопасный `read_selector` и имя процедуры присутствуют, но публичное имя владельца 1С не восстановлено. Это не проблема вектора; это неполный `metadata.module_owner_cache`. Следующая доработка — фоновое построение name-first карты владельцев и lazy backfill только для top-кандидатов.