Релиз FreeSearch 1.16WIN: История о 9 кругах ада разработки, борьбе с компиляторами и локальном ИИ

Этот апдейт должен был выйти гораздо раньше, но превратился в настоящую войну между мной, нейросетями и сборщиками Python. Наконец-то я готов представить FreeSearch версии 1.16WIN — приватный поисковый хаб и браузер с полностью локальным ИИ на борту!

Релиз FreeSearch 1.16WIN: История о 9 кругах ада разработки, борьбе с компиляторами и локальном ИИ

Как это было: История создания и боли

За версией 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!

Напишите в комах как вам обнова?