У меня есть около 600 мемов. Когда нужно скинуть какой-то конкретный другу — начинается перебирания всех картинок в поисках той самой. «проблем современного человека».

Но я же программист! Решил автоматизировать этот процесс и сделать meme archive с поиском по картинкам. Изначальная идея была простой:

  1. Преобразовывать картинки в векторы (embeddings) через ИИ
  2. Делать то же самое с текстовыми запросами
  3. Искать совпадения через векторную БД

Но тут начались проблемы. Не нашёл бесплатного API для моделей типа BLIP, которые работают в едином векторном пространстве для текста и изображений. Запускать локально на ПК тоже не хотелось — долго и требует ресурсов.

Пришлось идти по тупому пути:

  • Использовал бесплатный API Google AI Studio (да, он не работает в РФ, как и большинство сервисов)
  • Модель gemini-flash-lite-latest генерирует текстовое описание для каждого мема
  • Для этих описаний создаю эмбеддинги
  • Храню всё в векторной БД Chroma

Код проекта

meme archive