На сайт віра.укр додано семантичний пошук по Біблії українською мовою
Адреса кирилицею: https://віра.укр/пошук-у-біблії
Адреса латинкою: https://viraukr.net/bible-search
Це означає, що вірші можна шукати не за точними словами, а за сенсом. Наприклад, щоб знайти вірш Ін. 3:16, достатньо ввести запит "Бог віддав Сина за світ". В еру AI, зокрема ChatGPT, таким важко когось зацікавити, але ми все таки спробуємо:
- Це безкоштовно для користувача. Для нас це плата за хостинг, але під час пошуку жодних зовнішніх викликів не відбувається.
- Це швидко.
- Пошук інтегрований безпосередньо в Біблію на сайті віра.укр. На сторінці пошуку можна в один клік відкрити главу, в якій знаходиться знайдений вірш, щоб прочитати весь контекст.
- Пошук інтегрований в телеграм-бот @bibleukrbot. Це дозволяє миттєво знаходити й надсилати потрібний вірш прямо в будь-який чат чи канал (через inline-режим).
- Це колосально заощаджує ресурси. AI використовувався лише на підготовчому етапі, а при самому пошуку важкі генеративні моделі не задіюються.
Технічні деталі:
- Підготовка даних. Перед використанням текст Біблії було збагачено. Ми пройшлися по всіх книгах: вірші пакетами (батчами) надсилалися до Gemini API (модель gemini-2.5-flash) для автоматичного створення метаданих: короткого резюме вірша, списку ключових тем та потенційних пошукових запитів.
- Векторизація та індекс (SentenceTransformers + FAISS). Використано embedding-модель multilingual-e5-small для кодування текстів разом із метаданими у високорозмірні вектори. Для миттєвого пошуку схожих векторів (за косинусною схожістю) застосовано бібліотеку FAISS.
- Пошуковий сервіс (FastAPI). При запуску сервер завантажує індекс та метадані в оперативну пам'ять, миттєво приймає запити від сайту або телеграм-бота, кодує запит на льоту й повертає найбільш релевантні результати.
- Заощадження ресурсів. Для порівняння: один запит до ChatGPT (на базі гігантських моделей на кшталт GPT-4) споживає близько 0.3–3 Вт/год енергії — це стільки ж, скільки потрібно сучасній світлодіодній лампі для роботи протягом 15–30 хвилин. У нашому сервісі на запит користувача легка локальна модель робить один швидкий прохід для кодування короткої фрази у вектор, після чого миттєво знаходиться відповідність серед 37 000 віршів. Весь процес займає менше 5–10 мілісекунд на звичайному процесорі й витрачає мізерну частку міліват-години (у тисячі разів менше за запит до LLM).