Commit Graph

23 Commits

Author SHA1 Message Date
dierk 7f08813635 Switch frontend search chips and placeholder to German
Matches the German search words shown on the demo slide in the presentation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 12:12:10 +02:00
dierk 978c70e91a Add HuggingFace URL note to CLIP slide
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.5.0
2026-05-20 12:07:11 +02:00
dierk 4a82352391 Document CLIP model source in embedder.py and README
Model downloads automatically from HuggingFace Hub on first use.
No manual download required.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 12:04:10 +02:00
dierk 64ee10c182 Presentation refinements: VECTOR datatype context, diagram fixes, stronger messaging
- Title slide: updated subtitle to mention VECTOR datatype
- New slide 2: explain VECTOR as new native datatype, state presentation goals
- Slide 3 diagram: fix 'groß' label position (off y-axis), 'Bild-Vektor' label clear of arrow
- Slide 3: enlarge central message "Vektoren machen Ähnlichkeit berechenbar." (size 26)
- Last slide: add bullet on VECTOR as welcome addition making AI embeddings first-class

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.4.0
2026-05-20 11:38:11 +02:00
dierk 9116533f03 Update README with all recent changes
- Project structure: add index_images_indb.py
- Architecture: fix schema names (VECTORS_USER/VECTOR), HNSW for all three
- Database schemas: separate sections for VECTORS_USER and VECTOR, photo storage differences
- Indexing scripts: three-way comparison table, measured avg times (12.1s/12.1s/13.6s)
- ORA-24816 workaround documented
- Performance comparison: real benchmark numbers, HNSW for in-DB, photo storage row
- Oracle in-DB section: HNSW index creation, index_images_indb.py for population
- Re-index section: add index_images_indb.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.3.0
2026-05-20 11:17:27 +02:00
dierk 3ef43019be Add in-DB indexing script, benchmark results, schema names in presentation
- index_images_indb.py: new script indexing via VECTOR_EMBEDDING(CLIP_IMG)
  using a two-step INSERT+UPDATE to work around ORA-24816
- index_images_oracle.py / index_images.py: add timing output
- Presentation: schema names VECTORS_USER/VECTOR in diagram and comparison,
  ONNX expansion, HNSW index note on slide 11,
  indexing times updated from 3-run benchmark (avg: PG 12.1s, Ora 12.1s, InDB 13.6s)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 10:42:13 +02:00
dierk e70d422c69 Document lightbox feature in README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 15:19:37 +02:00
dierk 26ce44e186 Add lightbox to all three frontends — click photo to view full size
Click any result image to open it in a dark overlay. Click anywhere or
press Escape to close. Score colour matches each frontend's accent colour.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.2.0
2026-05-19 15:15:52 +02:00
dierk 048309da8a Add present.sh and document LibreOffice --show flag in README
present.sh launches the slideshow directly without opening the Impress UI.
The script is gitignored as a local convenience helper.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 14:56:28 +02:00
dierk 1c5e00d8e4 Add targeted comments explaining non-obvious behaviour
- embedder.py: lazy model load rationale, RGB conversion, shared vector space
- main.py: why vec appears twice, ::vector cast, 1-distance score formula
- main_oracle.py: why array.array("f") is required instead of plain list
- main_oracle_indb.py: no embedder import — embedding done inside Oracle SQL
- index_images_oracle.py: same array.array requirement on indexing path

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 14:39:40 +02:00
dierk 70da90c238 Add LibreOffice lock file pattern to .gitignore
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.1.0
2026-05-19 14:18:28 +02:00
dierk c893c92235 Remove redundant index_indb.html — superseded by frontend/indb/index.html
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 14:17:25 +02:00
dierk ab7f384951 Add Python dependency install step to setup instructions in README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.0.0
2026-05-19 12:05:20 +02:00
dierk 3dcb98f82f Add requirements.txt for both backends
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 12:04:43 +02:00
dierk bc4b871cfb Add .env.example templates and document configuration in README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 12:03:53 +02:00
dierk a833300530 Add setup instructions to README for all three backends
Covers PostgreSQL database creation and schema setup, Oracle vectors_user
setup, and Oracle in-database ONNX model loading. Also updates project
structure to include the new sql/ directories.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 12:02:54 +02:00
dierk d360ff1a78 Add SQL setup scripts for all three backends
- pgvector-demo/sql/setup.sql: enable pgvector extension, create images table and HNSW index
- oravector-demo/sql/setup_vectors_user.sql: create vectors_user, images table and HNSW vector index
- oravector-demo/sql/setup_vector_schema.sql: create VECTOR user, load CLIP ONNX models, create FOTO_VEKTOR table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 12:00:58 +02:00
dierk 080795c4dc Update README to reflect current implementation
- PostgreSQL now runs in Docker (pgvector/pgvector:pg18) on port 5433
- pgvector version updated to 0.8.2, PostgreSQL to version 18
- Project structure updated with start.sh, stop.sh, and indb/ subfolder
- Running section now documents start.sh / stop.sh
- Frontend URLs updated to /ui/ endpoint
- Photo count corrected to 116

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 11:52:56 +02:00
dierk 4741b18b74 Add stop.sh to shut down all three backends
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 11:48:28 +02:00
dierk ae66fdf4ce Add start.sh to launch all three backends in one command
Starts pgvector (8000), Oracle 26ai (8001), and Oracle in-DB (8002)
backends concurrently and stops all on Ctrl+C.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 11:43:59 +02:00
dierk 31ea0143d0 Fix in-DB frontend serving its own index.html instead of the Oracle 26ai one
Moved index_indb.html into a dedicated frontend/indb/ subdirectory so the
in-DB backend (port 8002) serves the correct purple Oracle In-DB UI at /ui/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 11:43:11 +02:00
dierk 4e68b2f226 Serve frontends via FastAPI static files to fix Brave browser file access block
Each backend now mounts its frontend directory at /ui/ so the UIs are
accessible via http://localhost:800x/ui/ instead of file:// URLs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 11:40:42 +02:00
dierk 66f7db40b0 Initial implementation of pgvector and Oracle 26ai vector search demo
Three FastAPI backends comparing PostgreSQL/pgvector and Oracle 26ai for
semantic image search using CLIP embeddings: Python-side embedding for both
databases, plus Oracle in-database embedding via VECTOR_EMBEDDING(CLIP_TXT).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 11:33:16 +02:00