changed format

This commit is contained in:
2026-03-18 02:26:05 +01:00
parent 3a9a85efaa
commit 358ee67b3c
@@ -1,18 +1,18 @@
# Project: Vassal Vassal: Product and technical Vision
## Product vision # Product vision
Vassal is an AI-powered bridge designed to connect physical reality to digital management systems. It functions as an intelligent intermediary that performs image analysis and semantic search, enriching raw data before "serving" it to a primary application via REST API. Vassal is an AI-powered bridge designed to connect physical reality to digital management systems. It functions as an intelligent intermediary that performs image analysis and semantic search, enriching raw data before "serving" it to a primary application via REST API.
## Technical requirements & stack # Technical requirements & stack
### Frontend ## Frontend
- Framework: Next.js (React) - Framework: Next.js (React)
- Styling: Tailwind CSS + SCSS - Styling: Tailwind CSS + SCSS
- Core Task: Provide a streamlined interface for capturing or uploading photos (single or multi-item) and a dedicated UI for reviewing AI-generated metadata. - Core Task: Provide a streamlined interface for capturing or uploading photos (single or multi-item) and a dedicated UI for reviewing AI-generated metadata.
### Backend ## Backend
- Framework: Spring Boot - Framework: Spring Boot
- AI Orchestration: Spring AI - AI Orchestration: Spring AI
@@ -21,20 +21,20 @@ Vassal is an AI-powered bridge designed to connect physical reality to digital m
- Core Task: Managing the lifecycle of an item from initial photo upload to final API export. - Core Task: Managing the lifecycle of an item from initial photo upload to final API export.
### Database ## Database
- System: PostgreSQL + pgvector (initial iteration) - System: PostgreSQL + pgvector (initial iteration)
- Role: Acts as the vector store for intelligent search and the engine for the image processing - Role: Acts as the vector store for intelligent search and the engine for the image processing
## Functionality # Functionality
### Intelligent search ## Intelligent search
Vassal does not rely on exact word matching. Because it stores data in a vector-capable database, users can search via Natural Language Prompts. Vassal does not rely on exact word matching. Because it stores data in a vector-capable database, users can search via Natural Language Prompts.
Example: Searching for "tool to tighten a bolt" will return a "Wrench," even if the word "bolt" or "tighten" isn't in the item's title. Example: Searching for "tool to tighten a bolt" will return a "Wrench," even if the word "bolt" or "tighten" isn't in the item's title.
Process: The search prompt is converted into a vector by the AI, and Postgres performs a "Cosine Similarity" check to find the closest matches in the staging or history tables. Process: The search prompt is converted into a vector by the AI, and Postgres performs a "Cosine Similarity" check to find the closest matches in the staging or history tables.
### Image processing workflow (Start to Finish) ## Image processing workflow (Start to Finish)
The image processing is the heart of Vassals "bridge" functionality. It ensures data quality before it reaches your primary app. The image processing is the heart of Vassals "bridge" functionality. It ensures data quality before it reaches your primary app.
- Ingestion: When a photo is uploaded, the raw image and its initial metadata are saved into a temporary staging table in Postgres. - Ingestion: When a photo is uploaded, the raw image and its initial metadata are saved into a temporary staging table in Postgres.
@@ -49,7 +49,7 @@ The image processing is the heart of Vassals "bridge" functionality. It ensur
- Cleanup: Upon successful export, the staged record is either archived or removed from the local database, keeping the bridge lean. - Cleanup: Upon successful export, the staged record is either archived or removed from the local database, keeping the bridge lean.
### Deployment ## Deployment
Vassal is deployed via Docker Compose for high portability. Vassal is deployed via Docker Compose for high portability.
- Container 1: Next.js (Web UI) - Container 1: Next.js (Web UI)