Каждый снимок сам подписывает себя: когда, где и что на нём
«ФотоМетка» — приложение для iPhone, Android и Mac. Вы делаете фото или скриншот, а через пару секунд у снимка уже есть подпись: дата, место и смысл («билет на поезд Москва → Рязань на 12 ноября»). Потом любой снимок находится обычной фразой: «чеки за октябрь», «кот на даче», «ошибка python».
- Телефон или Mac замечает новый снимок и сразу берёт из него «паспортные данные»: время, координаты, тип (фото или скриншот), из какого приложения.
- Распознавание читает текст на снимке, а нейросеть, которая понимает картинки, пишет 1–2 предложения смысла и теги. Тяжёлую работу делает наш собственный сервер GX10 — фото не уходят в чужие облака.
- Поиск работает на самом устройстве: по словам, по смыслу, по датам и местам, даже без интернета. Метки синхронизируются через наш сервер — скриншот с Mac находится в поиске на телефоне и наоборот.
Порядок: Android (там можно реагировать на снимок мгновенно) → Mac (скриншоты на Mac ловятся тоже мгновенно, а мощный Mac может думать о смысле сам, без сервера) → iPhone (с честными ограничениями iOS, описаны ниже).
Как это выглядит для человека
Ничего не нужно нажимать: всё происходит само. Человек видит результат в уведомлении и в поиске.
Сделал снимок
Обычный скриншот или фото — штатной камерой или кнопками телефона. Наше приложение не мешает.
Через 1–5 секунд
Приходит тихое уведомление: «Скриншот подписан: Билет на поезд…». Если подпись неверна — «Исправить» в одно касание.
Через месяц
Пишете в поиске «билет на 12 ноября» или просто «поезд» — снимок первый в списке, даже если слова «поезд» на нём нет.
Сам собой порядок
Подборки «Чеки», «Билеты», «Документы», «Переписки» собираются сами. Карта показывает, где что снято.
Метка снимка — его «карточка»
Метка — это набор полей, который приложение хранит про каждый снимок. Вот пример для скриншота билета. Справа у каждого поля написано, откуда взялось значение — это важно для доверия.
Электронный билет: отправление 12 ноября в 07:35 с Казанского вокзала, вагон 5, место 23.
Две разные даты — и обе ищутся
«Дата снимка» — когда сделан скриншот (8 ноября). «Дата внутри снимка» — о каком дне он (поездка 12 ноября). Поиск «билет на 12 ноября» найдёт этот скриншот, хотя сделан он 8-го. Встроенные галереи так не умеют.
Где хранится метка
Главная копия — в базе на телефоне (это быстро и не портит снимки). По желанию — ещё и внутри самого файла (стандарт XMP — «невидимая бирка» в фото), тогда подпись увидят и другие программы: Lightroom, Google Фото, компьютер.
Показать метку в виде данных (для разработчиков)
{
"id": "a6f1…", "kind": "screenshot", "schema": 1,
"taken_at": "2026-11-08T21:14:03+03:00",
"place": { "lat": 55.7616, "lon": 37.6094, "accuracy_m": 50, "source": "phone_journal",
"address": "Москва, Тверская ул., 7", "my_place": null },
"source_app": "РЖД Пассажирам",
"title": "Билет на поезд Москва → Рязань",
"summary": "Электронный билет: отправление 12 ноября в 07:35 с Казанского вокзала, вагон 5, место 23.",
"category": "tickets", "tags": ["билет","поезд","РЖД","поездка"],
"text": "ЭЛЕКТРОННЫЙ БИЛЕТ … 1 470,00 ₽",
"entities": [ {"type":"datetime","role":"departure","value":"2026-11-12T07:35"},
{"type":"money","value":1470,"currency":"RUB"},
{"type":"seat","value":"вагон 5, место 23"} ],
"sensitive": false, "confidence": 0.94,
"model": "server:qwen3-vl / ocr:paddle", "edited_by_user": false
}Конвейер: 8 шагов от снимка до находки
Каждый снимок проходит одни и те же шаги. Нажмите на шаг — внизу откроется подробное объяснение простыми словами. Значки показывают, где шаг выполняется.
телефон — на самом телефоне, работает без интернета · сервер — на нашем сервере GX10 · по желанию — включается в настройках
Попробуйте поиск сами
Ниже — 15 придуманных снимков с готовыми метками (как их подписал бы наш алгоритм). Поиск работает так же, как будет в приложении: понимает даты («вчера», «в октябре», «на прошлой неделе», «12 ноября»), тип («скриншоты», «фото»), места и слова в любой форме («чеки» = «чек» = «чеков»). Демо считает, что сегодня — 10 ноября 2026.
Макеты экранов
Восемь главных экранов телефона и окно для Mac. Интерфейс простой: лента снимков с подписями, карточка снимка, поиск, карта, подборки и настройки приватности.
Три части: устройство, шлюз, сервер смысла
Снимки живут на ваших устройствах. На сервер уходит только уменьшенная копия (около 1000 пикселей по длинной стороне), по защищённому каналу, и сразу удаляется после ответа. Обратно приходит только текст метки.
Телефон или Mac
- Следит за новыми снимками
- Читает дату, координаты, тип
- Адрес по координатам (с запасом в кэше)
- Распознаёт текст (OCR) и личное
- База меток + поиск, работает офлайн
- Очередь: что отправить, когда будет Wi‑Fi
Flutter (один код экранов для iPhone, Android и Mac) + нативные модули Kotlin / Swift для галереи, фона и распознавания. База — SQLite с полнотекстовым и векторным поиском. Mac на Apple Silicon может запускать модель смысла сам.
ключ устройства
Шлюз на sagr
- Единственная дверь из интернета (api.fotometka…)
- Проверяет ключ телефона, лимиты
- Ничего не хранит, только пересылает
- Журнал ошибок без содержимого снимков
Traefik уже принимает *.24oros.ru; шлюз — маленький сервис на кластере, на GX10 ходит по Tailscale.
внутренняя сеть
Сервер смысла GX10
- Нейросеть, понимающая картинки (класс Qwen3‑VL), — описание, теги, раздел
- OCR с русским (PaddleOCR) — если телефон не справился
- Факты: даты, суммы, номера (правила + модель)
- Векторы смысла для поиска
- Свой геокодер по картам OSM / нашей базе городов
Память 128 ГБ позволяет держать модели постоянно загруженными. Ориентир: 1–3 с на снимок, архив 20 000 снимков — за одну ночь.
Три режима приватности — выбирает человек
Только телефон
Дата, место, текст, тип и простая подпись по шаблону («Скриншот Telegram с адресом»). Без интернета. Поиск по смыслу — по тексту меток. Подходит, если сервер вообще не нужен.
Свой сервер
Подробные описания и теги от большой модели на GX10. Снимки не хранятся, личное (банк, документы) не отправляется вовсе — обрабатывается только на телефоне.
Чужое облако
Подключение внешних ИИ-сервисов для тех, у кого нет своего сервера (для будущей публичной версии). По умолчанию выключено, включается явно, с предупреждением.
iPhone, Android и Mac — что можно, а что нельзя
Телефоны по-разному пускают приложения к фото и фоновой работе. От этого зависит, насколько «мгновенно» всё работает. Поэтому начинаем с Android, затем Mac, затем iPhone.
| Что нужно | Android | iPhone (iOS) | Mac (macOS) |
|---|---|---|---|
| Узнать о новом снимке сразу | Да. Слушаем системный список медиа (MediaStore) — подпись через секунды. | Не мгновенно. iOS не будит приложения из-за нового фото. Подписываем при открытии, в фоне (система разрешает обычно ночью, на зарядке) и сразу — через «Поделиться → ФотоМетка». | Да. Следим за папкой скриншотов (FSEvents) и за медиатекой «Фото» — подпись за секунду. |
| Работа в фоне | Да, но у Xiaomi, Huawei, Honor надо разрешить «автозапуск» и снять ограничение батареи — покажем подсказку. | Только когда разрешит система (фоновая задача BGProcessingTask). Срок не гарантирован. | Да. Живёт значком в строке меню, работает постоянно, нагрузка малая. |
| Координаты из фото | Нужно отдельное разрешение «доступ к местоположению в медиа», иначе Android вырезает координаты. | Да, при полном доступе к фото. | У фото с iPhone — да. У скриншотов координат нет; место Mac определяет по Wi‑Fi (по желанию). |
| Русский текст на телефоне (OCR) | Стандартный ML Kit от Google кириллицу НЕ читает. Ставим свой распознаватель (PaddleOCR или Tesseract) или распознаём на сервере. | Да, встроенный Apple Vision читает русский. | Да, тот же Apple Vision. |
| Вписать подпись в сам файл | Можно, одно подтверждение на пачку снимков. | Только как «правка» снимка — в «Фото» он станет «изменённым». По умолчанию не делаем. | Да, и даже лучше: ставим метки Finder и комментарий Spotlight — скриншот находится обычным поиском Mac (⌘ + пробел). |
| ИИ прямо на телефоне | Встроенный Gemini Nano есть лишь на части флагманов. Универсально — свои небольшие модели. | Встроенные модели Apple есть на новых iPhone, но описания картинок пока надёжнее делать на сервере. | Да. Mac на M‑чипе тянет модель смысла сам (через MLX или Ollama) — сервер не обязателен. |
| Как раздавать | APK напрямую (через наш publisher) — сразу; потом RuStore и Google Play. | TestFlight, затем App Store: Apple строго проверяет доступ ко всем фото и фоновую геолокацию — журнал мест делаем строго по желанию. | Свой установщик (.dmg) с подписью разработчика — сразу; позже Mac App Store. |
Чем отличаемся от встроенного поиска
Google Фото и Apple Фото уже ищут по картинкам. Но подпись там не видна и не правится, скриншоты без места, а Google требует загружать всё в своё облако. Мы делаем подпись главным героем.
| Возможность | Google Фото | Apple Фото | Галерея телефона | ФотоМетка |
|---|---|---|---|---|
| Поиск по смыслу («кот», «чек») | да, в облаке | да | по-разному | да |
| Видимая подпись, которую можно править | только вручную | только вручную | нет | сама + правка |
| Факты из снимка: даты, суммы, номера | частично | частично | нет | да, ищутся |
| Место у скриншотов | нет | нет | нет | по желанию |
| Без загрузки в чужое облако | нет | да | да | да, свой сервер |
| Один поиск на Android, iPhone и Mac | через облако | только iPhone + Mac | нет | да, через свой сервер (фаза 5) |
| Скриншоты Mac в поиске Spotlight | нет | только текст | — | да, с подписью и тегами |
| Выгрузка подписей (файл, XMP) | нет | частично | нет | да |
Оценка по состоянию на ноябрь 2026, по открытым данным о возможностях приложений; детали проверим на фазе 0 на реальных телефонах.
9 фаз, около 21 недели
Каждая фаза заканчивается тем, что можно потрогать руками, и понятной проверкой «готово / не готово». Сроки — ориентир для одного разработчика вместе с Claude; фазы 6 и 7 можно вести параллельно.
Как поймём, что получилось
Риски и как их снимаем
Нейросеть «придумывает» то, чего нет на снимке
Просим модель отвечать строго по виду снимка, в формате с полями; факты (даты, суммы) сверяем с распознанным текстом и правилами. Если уверенность низкая — подпись серая с пометкой «проверьте». Правки человека запоминаются: «это не Сергей, а Серёжа-сосед».
Личные данные на скриншотах (банк, пароли, документы)
До отправки на сервер телефон сам проверяет: приложение банка, номера карт, паспорт, коды. Такие снимки помечаются «личное», обрабатываются только на телефоне, в ленте размыты. Список исключений человек может дополнить.
Батарея и «убийцы фоновых задач» у Xiaomi, Huawei
Новые снимки — быстрая лёгкая обработка; тяжёлая и архив — только на зарядке и Wi‑Fi. Подсказка с картинками, как разрешить автозапуск на конкретной марке телефона.
iOS не даёт реагировать мгновенно
Честно говорим об этом в интерфейсе; даём быстрые пути: «Поделиться → ФотоМетка», виджет «Подписать последние», подпись при каждом открытии приложения (быстро — уже в очереди).
Слабый русский язык у моделей
На фазе 0 сравниваем 3–4 модели на наших же снимках, выбираем лучшую. Поиск — с русской морфологией (чек = чеки = чеков) и синонимами (поезд ↔ РЖД, авто ↔ машина).
Сервер недоступен или перегружен
Телефон не ждёт: сразу ставит базовую метку (дата, место, текст), а смысл дописывает позже, когда сервер ответит. Очередь переживает перезагрузку телефона. GPU GX10 общий с другими задачами — у нас своя очередь с приоритетом «новые снимки важнее архива».
Закон о персональных данных и правила магазинов (для публичной версии)
Сервер в России (свой), политика конфиденциальности, согласие на каждую обработку, удаление по кнопке. Для App Store — подробные объяснения каждого разрешения; фоновая геолокация строго по желанию.
Термины простыми словами
Пять решений перед стартом
1. Название
Рабочее — «ФотоМетка». Варианты: «Подписант», «СнимкоПоиск», «Метка». Влияет на поддомен и магазины.
2. Порядок платформ
Предлагаем: Android → Mac → iPhone. Mac быстрый (2 недели) и сразу полезен в работе. Если iPhone важнее Android — меняем местами фазы 2 и 6 (срок +1 неделя из-за ограничений iOS).
3. Для кого
Для себя и команды (проще, только свой сервер) или публичный продукт (нужны магазины, политика, режим «чужое облако», оплата).
4. Журнал мест для скриншотов
Это самая «чувствительная» функция. Предлагаем: выключена по умолчанию, хранится 90 дней только на телефоне.
5. Ваши снимки для фазы 0
Нужны 300 реальных фото и скриншотов (можно без личного), чтобы честно сравнить модели на русском. Обрабатываем только на GX10, после — удаляем.