Key facts
| Pattern | Catalogue embeddings → intent retrieval → rules-based ranking |
| Embeddings | plugsky-embed and plugsky-embed-multilingual via /v1/embeddings (live) |
| Metadata | Category, price band, region, availability and attributes per vector |
| Ranking | Deterministic rules and scoring in your code |
| Generation | Optional explanations via /v1/chat/completions with JSON mode (live) |
| Models | 30+ models behind one endpoint when explanations are needed |
| Deployment | Region-locked planes, VPC, on-prem and air-gapped options |
| Free tier | plugsky-micro and plugsky-lite on the free plan, no card required |
TL;DR
- Treat the catalogue as a corpus and intent as the query.
- Store attributes as metadata so filters narrow candidates before ranking.
- Keep ranking deterministic — embeddings propose, your rules decide.
- Refresh the index on inventory and price changes, not weekly.
- Measure acceptance and diversity against your existing ranker.
How it works, step by step
- Assemble item text rich enough to embed: title, description, attributes, category and use case.
- Embed items with plugsky-embed and store vectors with category, price band, region and availability metadata.
- Build an intent step that turns the user's context — query, basket, history — into a retrieval query plus filters.
- Retrieve a candidate set, then apply eligibility and availability filters in code.
- Rank with deterministic scoring: relevance, margin, stock, diversity and business rules.
- Optionally generate short reasons per item with JSON-mode output grounded in item attributes.
- Evaluate acceptance, return rate and catalogue coverage against your existing recommendation engine.
Original data
Try it yourself
Open the vector database comparison →
Embeddings as a catalogue index
Catalogues are already semi-structured corpora, which makes them a natural fit for RAG. Embedding item descriptions gives you semantic matching: a shopper asking for a waterproof jacket for winter commuting retrieves relevant items even when the query shares no keywords with the listing. Attributes stored as metadata let you filter before ranking, which keeps results both relevant and compliant.
The embedding endpoint is live on Plugsky, and because it is OpenAI-compatible it drops into whatever pipeline already builds your catalogue feed. If your catalogue spans languages, plugsky-embed-multilingual lets one index serve queries in any supported language.
Retrieve then rank with rules
Retrieval proposes; ranking decides. Keeping the ranker deterministic means you can reason about it, tune it, and explain it to merchandising. Embeddings handle the fuzzy part — understanding intent — while scoring handles business priorities and constraints.
- Filters first: region, availability, age restrictions and contract terms before scoring.
- Score composition: relevance plus margin, stock cover, delivery speed and diversity weights.
- Exploration: reserve slots for new or under-exposed items to avoid a narrowing loop.
- Freshness: update vectors when titles or attributes change, not only when items are added.
Cold start, feedback and evaluation
RAG recommendations handle cold start better than collaborative filtering because they work from item content rather than interaction history. A new user with a stated intent gets sensible results immediately, and a new item becomes discoverable as soon as it is indexed.
Collect explicit feedback — accepted, saved, dismissed — and implicit signals, then use them to tune ranking weights rather than retraining an opaque model. Evaluate on held-out traffic against your current engine, watching acceptance rate, return rate, catalogue coverage and diversity. Trace which candidates were retrieved and how they were scored, so surprises are explainable. Where customer data cannot leave a region, deploy the same pipeline in a region-locked plane or on-prem with Plugsky.
Honest comparison
| Capability | RAG recommendations | Tag-based rules | Collaborative filtering |
|---|---|---|---|
| Matching | Semantic over item content | Exact tags | Interaction history |
| Cold start | Works from content | Manual tagging | Weak without data |
| Control | Deterministic scoring layer | Full control | Limited interpretability |
| Freshness | Re-embed on item change | Tag updates | Retrain cycles |
| Explanations | Reasons grounded in item attributes | Templates | Usually none |
Frequently asked questions
How is this different from collaborative filtering?
It works from item content rather than interaction patterns, so it functions with little history and explains itself. Many teams run both and blend the candidate sets.
What text should be embedded?
Title, description, key attributes and use cases. Rich, factual text produces better semantic matches than keyword-stuffed listings.
How do we keep results compliant?
Apply eligibility, region and availability filters in code before ranking. Never let retrieval surface items the user cannot buy or view.
Which embedding model should we use?
plugsky-embed for single-language catalogues; plugsky-embed-multilingual when items or queries span languages such as Arabic and English.
How often do we refresh vectors?
Incrementally, as items and attributes change. Stale titles and prices degrade matching quality and trust in the recommendations.
Do we need a language model at all?
Only if you want generated reasons or conversational refinement. Retrieval and deterministic ranking deliver the core feature using the embeddings endpoint alone.
Can it run on-prem?
Yes. Plugsky supports region-locked cloud planes plus VPC, on-prem and air-gapped deployment, so catalogue and customer data stay within your environment.