Локальный RAG прямо поверх полноэкранных игр
Казалось бы, кого сейчас удивишь очередной оберткой над LLM?
🎮 Проект GameWikiTooltip с таким пользовательским флоу: играешь в Elden Ring или Helldivers 2, нажимаешь Ctrl+Q, поверх игры всплывает прозрачный оверлей. Внутри — браузер с вики или чат-бот, который отвечает на вопросы по билдам и механикам, опираясь на базу распарсенных YouTube-гайдов.
Смотреть исходники стоит не только ради геймерских фичей, но и ради архитектурных решений:
▪️ Вменяемый пайплайн поиска. Не просто слепой промпт в LLM. Реализован гибридный поиск: FAISS для семантики +
bm25s (быстрая реализация на Rust) для точного лексического матчинга. Результаты мержатся через Reciprocal Rank Fusion (RRF), а сверху накручен кастомный Intent Reranker, чтобы отличать запросы механик от просьб посоветовать билд.▪️ Глубокие Win32 хуки. В полноэкранных играх стандартные бинды библиотек отваливаются из-за перехвата инпута игрой (DirectInput/RawInput). Здесь реализован жесткий перехват глобальных шорткатов через
ctypes (RegisterHotKey) и фильтрацию нативных сообщений Windows прямо в Event Loop'е Qt.▪️ Интеграция PyQt6 и asyncio. Вечная боль десктоп-разработчиков: как подружить Event Loop от Qt с асинхронностью питона, чтобы UI не фризило при сетевых запросах к LLM. Здесь это элегантно решено через qasync.
▪️ Оффлайн-распознавание голоса. Чтобы не тайпать во время замеса, прикручен локальный
vosk, который слушает микрофон в отдельном потоке и скидывает текст в инпут.Отдельный плюс за архитектуру: парсинг ютуб-гайдов, чанкинг и эмбеддинги вынесены в оффлайн-шаг, а в рантайме приложение только гоняет легковесный поиск по локальным векторам и отправляет контекст в Gemini Flash 2.5 Lite для финальной генерации ответа.
Но а если вам не интересны исходники, то в играх может пригодиться по прямому назначению 😏
#годный_опенсорс
Комментарии
0Комментариев пока нет.
Войдите, чтобы участвовать в обсуждении.