An open source recommendation service that converts any text image or video description into clean tags with a local LLM then serves personalized results using light vector math. Copy paste into your stack and chill. It uses the same modern approach that companies like X (using Grok for recommendations) and Meta (using Llama for recommendations) are using.
- Universal Works for products posts clips bios anything described in words
- Bring your own tags Define enums in YAML and you are set
- Local friendly Runs with Ollama meaning your data never leaves your box
- Pluggable storage SQLite for hack nights Firestore or DynamoDB for prod
- Fully typed FastAPI endpoints plus a CLI for quick experiments
poetry install
poetry run uvicorn api.server:app --reload
Swagger UI pops up at http://127.0.0.1:8000/docs
- POST /tag get tags for a description
- POST /item store an item with tags and vector
- POST /interact update a user profile after a click view or like
- POST /recommend grab the top matches for that user
- Python 3.10 or newer
- Ollama running with your fave model
ollama pull llama3.2
ollama serve
Edit config.yaml
model_url
points at Ollamastorage_backend
selects your adapterenum_list
lists valid tags
Switch backend by setting storage_backend
to one of
storage.sqlite_adapter.SQLiteStorage
storage.firestore_adapter.FirestoreStorage
storage.dynamodb_adapter.DynamoDBStorage
Firestore
export GOOGLE_APPLICATION_CREDENTIALS=your-key.json
DynamoDB
aws configure
poetry run python -m cli "A 4K sixty Hz monitor with ultra thin bezels"
poetry run pytest -q
Ship it and have fun.