Все проекты

Пример услугиОткрытый кодОткрытый код

OpenBrain

Сохраняйте ролики, посты, ссылки и скриншоты. OpenBrain читает их, делает выжимку и позволяет найти нужное обычными словами.

Открыть работающий сайт Исходный код на GitHub
Снимок интерфейса OpenBrain

Результат

Поиск обычными словами по всему сохранённому

Задача

Всё, что вы сохраняете, попадает туда, куда вы больше никогда не заглянете. Закладки, сохранённые ролики, скриншоты: всё это работает только на запись.

Что я построил

Построен сбор там, где вещи на самом деле сохраняются (веб, меню «Поделиться» в Android и Telegram-бот), и конвейер приёма, который читает каждый элемент на входе: OCR для скриншотов, извлечение для страниц, затем выжимка, теги и эмбеддинг, чтобы искать по смыслу.

Результат

Можно попросить то, что помнишь наполовину, и действительно это получить. Размещение на своей стороне, чтобы архив оставался вашим.

Как это работает

  1. 01

    Элемент сохраняется из веба, через меню «Поделиться» в Android или через Telegram-бот: ссылка, скриншот, ролик, пост.

  2. 02

    Он читается на входе, а не на выходе: OCR для скриншотов, извлечение для страниц и постов.

  3. 03

    Извлечённый текст обобщается и векторизуется, поэтому элемент ищется по тому, о чём он был, а не по имени файла.

  4. 04

    Поиск отвечает на наполовину вспомненное описание, а не требует точных слов, которые в нём были.

Слой ИИ

OCR на приёме, выжимка и теги ради читаемой записи и гибридный поиск по ключевым словам и по смыслу, чтобы элемент находился по точным словам или по тому, о чём он был. Сделать дорогое чтение один раз на записи и есть то, что удешевляет поиск на чтении.

Инженерный слой

Каждое сохранение записывается в неизменяемый журнал до обработки, поэтому элемент, который не удалось разобрать, никогда не теряется. Вокруг этого: векторное хранилище, лицензия AGPL-3.0 и форма развёртывания достаточно простая, чтобы размещение на своей стороне было реалистичным, а не теоретическим.

Ключевые технические решения

Читать на приёме, а не в момент запроса.

Обработка на входе один раз стоит дороже и делает быстрым каждый последующий поиск. Обработка на выходе означает, что каждый запрос снова оплачивает OCR.

Размещение на своей стороне, из-за того что люди сохраняют.

Личный архив это последнее, о чём стоит просить человека передать третьей стороне. Самостоятельное размещение здесь и есть функция, а не вариант развёртывания.

Построено на

Next.jsVector DBLLMOCR

Связанное