Composes the two existing engines (Path A orchestration): - Translate NL -> StructuredQuery via local LLM, respecting LLM_BACKEND (resolve_backend(Local) -> ollama or llama-swap; no hybrid). - Forward-geocode the place name into a gps circle. - Structured filters (tags/EXIF/geo/date/media) build a candidate set of EXIF rows; CLIP ranks within it, joined by content_hash. Degenerate cases match existing behavior: semantic-only -> plain CLIP; filters-only -> date-sorted. - Echoes the interpreted query (incl. resolved place) for editable client chips. Refactor: extracted reusable cores from clip_search (score_photos, resolve_hits, parse_library_scope, score_error_response) shared by both endpoints. Removed the Phase 1 allow-until-wired attributes now that nl_query + geo are consumed. fmt + clippy clean; 23 backend tests pass (7 geo, 12 nl_query, 4 unified). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
46 lines
840 B
Rust
46 lines
840 B
Rust
#![allow(clippy::too_many_arguments)]
|
|
|
|
#[macro_use]
|
|
extern crate diesel;
|
|
|
|
pub mod ai;
|
|
pub mod auth;
|
|
pub mod bin_progress;
|
|
pub mod cleanup;
|
|
pub mod clip_search;
|
|
pub mod clip_watch;
|
|
pub mod content_hash;
|
|
pub mod data;
|
|
pub mod database;
|
|
pub mod date_resolver;
|
|
pub mod duplicates;
|
|
pub mod error;
|
|
pub mod exif;
|
|
pub mod face_watch;
|
|
pub mod faces;
|
|
pub mod file_scan;
|
|
pub mod file_types;
|
|
pub mod files;
|
|
pub mod geo;
|
|
pub mod libraries;
|
|
pub mod library_maintenance;
|
|
pub mod memories;
|
|
pub mod otel;
|
|
pub mod parsers;
|
|
pub mod perceptual_hash;
|
|
pub mod personas;
|
|
pub mod service;
|
|
pub mod state;
|
|
pub mod tags;
|
|
#[cfg(test)]
|
|
pub mod testhelpers;
|
|
pub mod thumbnails;
|
|
pub mod unified_search;
|
|
pub mod utils;
|
|
pub mod video;
|
|
|
|
// Re-export commonly used types
|
|
pub use data::{Claims, ThumbnailRequest};
|
|
pub use database::{connect, schema};
|
|
pub use state::AppState;
|