Sign inSign up

rokeller/photo-search

By rokeller

Updated about 1 month ago

A web server for Photo Search

Image
Web servers
0

1.5K

rokeller/photo-search repository overview

Photo Search by flrx39.net

High-level Overview

Photo Search comes with a few separate components.

  • An indexing tool (indexing) that calculates vector embeddings for photos and sends these embeddings to the indexing server, which is part of the web server below. This tool is designed to be run on a schedule (e.g. a cron job in Kubernetes), such that new photos are indexed periodically. The tool is built with Rust for fast and efficient indexing. The tool replaces the old Python-based indexing script to reduce the memory footprint and the amount of libraries that need downloading. The Python tool required around 10 GiB or more in dependencies (yuk!), the indexing tool (without the model, which both the script and the tool need) is around 10 MiB - a reduction of 99.9% or so. See also the photo-search-indexing image
  • A minimal embedding server (srv/embeddings/) that calculates vector embeddings for multi-lingual natural language queries, such that these queries can be matched/compared with embeddings calculated for photos. This server is designed to be run inside a Kubernetes cluster right next to the below web server and is made with Rust. It replaces the old Python-based embedding server to reduce the memory footprint. Initial tests show a memory footprint of about 40% of that of the Python-based embedding server. See also the photo-search-embedding image
  • An executable web server (srv/web/) written in go that offers HTTP endpoints for the above mentioned indexing server as well as endpoints to search and retrieve photos from the browser GUI. This is designed to be run inside a Kubernetes cluster with access to the embedding server.
  • A modern browser GUI (client/) written largely in TypeScript and using react that uses the above web server to search and retrieve the photos. The static assets produced for the client are designed to be served by the above web server.

Access to the GUI is only granted for authenticated users (more on this later) such that you can enjoy searching your photos without making them available to everybody. Future releases may allow to configure anonymous access though.

This repository holds the images produced for the above web server and browser GUI.

More information can be found in the git repo

Tag summary

Content type

Image

Digest

sha256:e4a91e25f

Size

6.9 MB

Last updated

about 1 month ago

docker pull rokeller/photo-search:v0.6.10