Релиз FreeSearch 1.16WIN: История о 9 кругах ада разработки, борьбе с компиляторами и локальном ИИ
Этот апдейт должен был выйти гораздо раньше, но превратился в настоящую войну между мной, нейросетями и сборщиками Python. Наконец-то я готов представить FreeSearch версии 1.16WIN — приватный поисковый хаб и браузер с полностью локальным ИИ на борту!
Как это было: История создания и боли
За версией 1.16WIN стоят два месяца бессонных ночей, бесконечных логов ошибок и переписывания архитектуры с нуля. Вот три главных препятствия, на которые ушло больше всего времени:
Девять кругов ИИ-ада (9 неудачных попыток обучения)
Интегрировать в проект локальную модель LGTT-mini оказалось сложной задачей. Чтобы заставить ИИ адекватно отвечать на русском языке, не ломая при этом синтаксис генерируемого кода (так как чат-бот умеет писать скрипты), потребовалось 9 неудачных попыток обучения. Модель то уходила в бесконечный цикл и бредила, то выдавала абсолютный дисбаланс в сторону английских токенов, полностью забывая русский язык. В итоге баланс был найден методом подбора параметров (штраф за повторения выставлен на жесткие 1.19), и ИИ начал выдавать чистые, форматированные ответы.
То параметр так не сдинеж, то токенизатор не правильный, то сессия на T4 закончились, короче это было жесть.
Кровавая битва с Nuitka
Изначально я загорелся идеей скомпилировать проект через Nuitka для максимальной производительности и защиты исходного кода. Это решение затормозило разработку на недели. Nuitka категорически отказалась работать со встроенным движком QtWebEngine и его процессами-помощниками (QtWebEngineProcess.exe). Пути ломались, окружение Chromium падало в Safe Mode, а защитные песочницы ругались на компиляцию. После десятка костылей и правок в builtins.compiled стало понятно, что этот компилятор только вредит проекту. То ОЗУ падало или ещё одна хрень.
Камбэк к PyInstaller:
Пришлось признать поражение в работе с Nuitka, чтобы спасти проект. Я полностью переписал логику инициализации путей, завернул все ресурсы через sys._MEIPASS, исправил баги окружения и вернулся на PyInstaller. Чтобы профиль WebEngine корректно шифровался и не блокировался процессами при закрытии приложения, был написан жесткий автоматический чистильщик (вызывающий taskkill для QtWebEngine в фоне), благодаря чему сборка теперь работает стабильно.
Что нового в FreeSearch 1.16WIN?
После двух месяцев переработки FreeSearch стал быстрее, умнее и полностью приватным. Основные изменения:
Встроенный локальный ИИ (LGTT-1): Чат-бот работает на базе 40M MoE-движка прямо на процессоре вашего ПК. Переписка никуда не отправляется, а ИИ генерирует ответы, используя данные из DuckDuckGo и Википедии. архетиктура LGTT это моя собственная архетиктура с оптимизацией с VRAM и FA для старых видеокарт.
Мастер-пароль и шифрование Vault: При первом запуске создается зашифрованное хранилище (PBKDF2-SHA256 + Fernet). Пароли, сессии, куки и данные автозаполнения теперь шифруются при закрытии браузера.
Умное ранжирование и история: Поисковый хаб анализирует частоту ваших посещений. Сайты, на которые вы заходите чаще всего, получают автоматический буст в поисковой выдаче.
Новая версия уже в GitHub!
Напишите в комах как вам обнова?