find · v1.0.0 · 2026-09-24 · sha256 2d54233aaf407120
find v1.0.0A
Immutable. This exact content never changes and is served at /api/v1/blob/2d54233aaf407120.
--- name: find description: "- Find a person, lead, contact or company by name in ANY spelling — deterministic name search that catches transliteration (Victor/Viktor/виктор), wrong keyboard layout (dbrnjh = виктор), and typos (висктор). Trigger on “/find <name>“, “найди <имя>“, “найди компанию <X>“, “все Викторы“, “кто такой <имя>“, “find <name>“, “покажи всех <имя>“" version: 1.0.0 --- # /find — умный поиск имени/компании по написанию > 🧒 **When reporting to Anton:** end with a child-simple "Простыми словами" recap. Детерминированный, 0 токенов — **НЕ RAG**. Эмбеддинги не понимают каракули (`dbrnjh`, опечатки, раскладку); это ловит отдельный код по фонетическим отпечаткам + нечёткому сравнению. Для поиска по СМЫСЛУ — это `/ask`, не сюда. ## Когда сюда «найди Виктора» · «все Викторы» · «найди компанию Мерлион» · «кто такой <имя>» · `dbrnjh`/опечатки/транслит — любое имя ЧЕЛОВЕКА, лида, контакта или КОМПАНИИ в любом написании. ## Запуск (ВСЕГДА `PYTHONUTF8=1` — иначе cp1252 краш на виндовой консоли) `PYTHONUTF8=1 python "$IMPORTS_ROOT/namesearch/find_name.py" <имя> [--html] [--all]` - по умолчанию: лиды + люди + компании + Apple-контакты (заметки волта скрыты) - `--all` — добавить заголовки заметок всего волта - `--html` — визуальный дашборд в `_Dashboards\Name-Search-*.html` (Антон работает глазами — предлагай его для длинных списков) Имя в кириллице даёт чистый запрос (виктор → ровно `viktor`); раскладочный/опечаточный запрос — расширяется автоматически. ## Сперва спроси WhatsApp-базу, если ищешь по ПЕРЕПИСКЕ `namesearch` знает имена и карточки, но НЕ знает текста WhatsApp: 148 978 сообщений живут в `[путь владельца]` (SQLite+FTS5, 0 токенов), и в волт едет только хвост транскрипта -- «не нашёл в заметках» там не значит «не было». - по человеку: `SELECT name,n,n_mine,first,last FROM chats WHERE name LIKE '%<имя>%'` - по телефону: `SELECT name,handle,wa_phone FROM people WHERE wa_phone LIKE '%<хвост>'` (leads.db) - по словам: `SELECT chat_name,sender,text FROM messages_fts WHERE messages_fts MATCH '<слово>' LIMIT 20` Витрины: [[_WhatsApp-People-Index]] (люди) · [[_WhatsApp-Chats-Index]] (все чаты, включая ниже порога). ## Смежное - `expand_query.py <слово> [--grep] [--line]` — развернуть слово во все написания для grep по волту или для скармливания в `/ask` (RAG-хук). - Индекс `names.db` пересобирается недельной задачей (и вручную `name_index.py --vault`). Если после большого импорта чего-то не хватает — упомяни, что нужна пересборка; сам не запускай без спроса. ## Ответ - Дай список/таблицу (display · тип · файл-ссылка); для длинного — `--html` дашборд. - Компания всплывает первой по запросу фирмы + связанные люди. - Если 0 хитов — скажи прямо, предложи проверить написание или пересобрать индекс; не угадывай. - Коротко; закончи 🧒-рекапом. ## Не путать - `/ask` = по смыслу (RAG, эмбеддинги). `/find` = по написанию (детерминированный отпечаток). Канон-память [[smart-name-search]].