Alle projecten

DienstvoorbeeldOpen sourceOpen source

OpenBrain

Bewaar reels, posts, links en screenshots. OpenBrain leest ze, vat ze samen en laat u ze terugvinden in gewone taal.

Bekijk de live site Broncode op GitHub
Schermafbeelding van de interface van OpenBrain

Resultaat

Zoeken in gewone taal over alles wat bewaard is

Het probleem

Alles wat u bewaart belandt op een plek waar u nooit meer kijkt. Bladwijzers, bewaarde reels, screenshots: het is allemaal alleen-schrijven.

Wat ik bouwde

Er is opslag gebouwd op de plekken waar dingen echt bewaard worden (het web, het Android-deelmenu en een Telegram-bot) en een ingest-pipeline die elk item bij binnenkomst leest: OCR voor screenshots, extractie voor pagina's, en daarna een samenvatting, tags en een embedding, zodat er op betekenis gezocht kan worden.

De uitkomst

U kunt vragen naar dat ding dat u zich half herinnert te hebben bewaard, en het ook echt terugkrijgen. Zelf te hosten, zodat het archief van u blijft.

Hoe het werkt

  1. 01

    Er wordt een item bewaard vanaf het web, via het Android-deelmenu of via de Telegram-bot: een link, een screenshot, een reel, een post.

  2. 02

    Het wordt bij binnenkomst gelezen, niet bij het opvragen: OCR voor screenshots, extractie voor pagina's en posts.

  3. 03

    De opgehaalde tekst wordt samengevat en gevectoriseerd, zodat het item vindbaar is op waar het over ging en niet op zijn bestandsnaam.

  4. 04

    Het retrieval beantwoordt een half herinnerde omschrijving in plaats van de exacte woorden te eisen die erin stonden.

De AI-laag

OCR bij ingest, samenvatting en tagging voor een leesbaar spoor, en hybride zoeken op trefwoord plus betekenis, zodat een item gevonden wordt op zijn exacte woorden of op waar het over ging. Het dure lezen één keer bij het schrijven doen is wat het zoeken bij het lezen goedkoop maakt.

De engineeringlaag

Elke opslag wordt vóór verwerking naar een onveranderlijk log geschreven, zodat een item dat niet te verwerken is nooit verloren gaat. Daaromheen: een vectoropslag, een AGPL-3.0-licentie, en een deploymentvorm die simpel genoeg is om zelf hosten realistisch te maken in plaats van theoretisch.

Belangrijke technische beslissingen

Lezen bij ingest, niet bij de zoekopdracht.

Verwerken bij binnenkomst kost één keer meer en maakt elke latere zoekopdracht snel. Verwerken bij het opvragen betekent dat elke zoekopdracht de OCR opnieuw betaalt.

Zelf te hosten, vanwege wat mensen bewaren.

Een persoonlijk archief is het laatste wat je iemand zou moeten vragen aan een derde partij te geven. Zelf hosten is de functionaliteit, geen deploymentoptie.

Gebouwd met

Next.jsVector DBLLMOCR

Gerelateerd