← ./work / TIDE.archive
TIDE.archive
Iskalni arhiv za trideset let ilustratorkinega dela
Ilustratorka ima okoli 40.000 datotek razmetanih po NAS-u, dveh prenosnikih in telefonu, z imeni kot scan_0042_final2.tif. TIDE je študija arhiva, ki se uredi sam, ko datoteke prispejo, in zna odgovoriti na prošnjo, kot je »gozdna serija, za tisk, vse iz leta 2019«.
- Vrsta
- Avtomatizacija · AI iskanje
- Leto
- 2025
- Vloga
- Arhitektura, cevovodi, iskanje
- Stanje
- Koncept
Koncept Študija, kako bi se lotila takšnega problema, ne naročniški projekt.
$ cat ./targets — ciljne vrednosti, ne izmerjeni rezultati
- 40.000
- indeksiranih datotek
- < 1 s
- običajno iskanje
- 3
- kopije vsakega izvirnika
- mesečno
- vaja obnove
Zajem
Vse, kar pade v nabiralnik, se sinhronizira iz albuma na telefonu ali preseli s starega NAS-a, pristane v objektni shrambi, združljivi s S3, z vklopljenimi verzijami, zato prepis nikoli ne izgubi izvirnika. Vsak nov objekt sproži dogodek.
Obogatitev
Eno opravilo na datoteko, razdeljeno na tri delavce. Prvi z libvips naredi izpeljanke: tiskarski izvirnik z ohranjenim ICC profilom in spletne velikosti v AVIF in WebP. Drugi požene model za vid, ki napiše opis in predlaga oznake iz studijskega besednjaka. Tretji shrani vektor, da se slike dajo najti po tem, kar prikazujejo, ne le po imenu.
Iskanje
Metapodatki in vektorji živijo skupaj v Postgresu s pgvectorjem. Iskalni API združi iskanje po ključnih besedah in pomenu, zato »deževna ulica, modro« deluje enako dobro kot ime datoteke. Katalog je hitra spletna aplikacija, klepetalni pomočnik pa na ista vprašanja odgovori v sporočilu s podpisano povezavo za prenos.
Varnost
Izvirniki se nikoli ne spreminjajo. Shramba se vsako noč šifrirano kopira na drugo lokacijo, vsak mesec pa teče skriptirana vaja obnove, ki objavi svoj rezultat. Oznake ostanejo predlogi, dokler jih človek ne potrdi, vsak popravek pa je shranjen kot verzija.
Kaj se spremeni
Iskanje datoteke traja sekunde namesto popoldneva, pošiljanje kompleta za tisk založniku pa je eno sporočilo.
$ trace — kako deluje
- 01Skener · telefon · NAS
- 02Objektna shramba
- 03Vrsta dogodkov
- 04Izpeljanke · vid · vektorji
- 05Postgres + pgvector
- 06Iskalni API
- 07Katalog · klepet
$ open ./result — kako bi bilo videti