Recall offers an intelligent way to search through local multimodal memory, supporting images, audio, video, PDFs, and text. With natural language queries, users can effortlessly find relevant content without needing metadata. An animated setup wizard and a Raycast extension enhance the user experience, making local semantic search both effective and accessible.
Recall: The Intelligent Way to Search
Recall is a powerful local multimodal memory solution that enables semantic search across various file types including images, audio, video, PDFs, and text. By embedding these files into a local vector database, Recall allows users to perform searches using natural language queries, making it easy to find relevant files without needing to rely on text metadata. For example, searching for "team dinner" can bring up associated photos, regardless of whether they contain textual information.
Key Features
- Enhanced Search Capabilities: Perform cross-modal searches without any tagging, renaming, or metadata requirements.
- Animated Setup Wizard: A user-friendly setup wizard simplifies the installation process, ensuring everything from folder selection to API key validation is automated.
- Raycast Integration: Instantly access visual search capabilities with thumbnails through the Raycast extension, providing a seamless user experience.
How It Works
- Embed files into the system.
- Each file is converted into a 768-dimensional vector using the Gemini Embedding 2 API.
- Store vectors locally in ChromaDB for efficient retrieval.
Example Workflow
You Gemini Embedding 2 ChromaDB (local)
| | |
|-- team-dinner.jpg -------->|-- 768-dim vector ------>|-- stored on disk
|-- meeting-notes.pdf ------>|-- 768-dim vector ------>|-- stored on disk
|-- "team dinner" (query) -->|-- query vector -------->|-- cosine search
|<---------------------------|<-- ranked results -------|
Simple Implementation in Python
from vector_embedded_finder import search, ingest_file, ingest_directory, count
# Embed a single file — image, PDF, audio, video, or text
ingest_file("~/Photos/team-dinner.jpg")
# Embed an entire directory (recursive)
ingest_directory("~/Documents/", source="docs")
# Perform a natural language search
matches = search("team dinner at the rooftop", n_results=5)
for m in matches:
print(f"{m['file_name']} {m['similarity']:.0%} match {m['file_path']}")
# Get indexed item count
print(f"{count()} items indexed")
Supported File Types
- Images: .png, .jpg, .jpeg, .webp, .gif, .bmp, .tiff
- Audio: .mp3, .wav, .m4a, .ogg, .flac, .aac
- Video: .mp4, .mov, .avi, .mkv, .webm
- Documents: .pdf
- Text: .txt, .md, .csv, .json, and more
Local Architecture Overview
The entire system architecture is designed for optimal efficiency, ensuring all processed vectors are stored locally and enhancing privacy. Only embedding API calls to Google result in outbound traffic, keeping personal files secure on the user's machine.
Recall stands as a robust alternative for those seeking advanced search capabilities within local storage without compromising on user experience or data security.
No comments yet.
Sign in to be the first to comment.