Pe 999.md sunt 310 subcategorii. Singur Locuri muncă are 167 (!). Vânzătorul mediu alege "Diverse" ca să termine rapid → anunțul devine invizibil pentru cumpărători care filtrează după subcategorie. alegere categorie Subcategorie Suggester rezolvă asta în <500ms cu LaBSE multilingual + Florence-2 vision + Claude Haiku disambiguation.
Cum funcționează (3 etape)
1. Compose embedding (LaBSE 768D)
text = f"{title}. {description}"
if photos:
captions = [florence2_caption(p) for p in photos]
text += " " + " ".join(captions)
emb = labse.encode(text) # 768D float vector
LaBSE = Language-Agnostic BERT Sentence Embedding. Funcționează identic pe RO și RU (multilingual). Util pentru anunțurile bilingve.
2. Cosine match față de centroizii subcategoriilor
Pre-calculate offline: pentru fiecare subcategorie, mediem embeddings de la 100 anunțuri active → centroid 768D. Salvat în pgvector.
SELECT subcategory_id, parent_category_id, centroid <=> $1 AS distance
FROM subcategory_centroids
ORDER BY distance ASC
LIMIT 5;
Output: top 5 candidates cu scoruri cosine.
3. LLM re-rank (doar cazuri ambigue)
Dacă top 2 sunt aproape (score_diff < 0.1), Claude Haiku zero-shot decide:
if abs(candidates[0].score - candidates[1].score) < 0.1:
prompt = f"Pick best subcategory for: {title}\n\nCandidates: {candidates}"
winner = claude_haiku_choose(prompt)
return [winner] + [c for c in candidates if c.id != winner.id][:2]
return candidates[:3]
Cum te ajută concret
Pentru vânzător privat — telefon Samsung
Tu scrii "vând telefon Samsung Galaxy". 999.md are subcategorii diferite: "Smartphone", "Calculatoare/Telefonie/Mobile", "Diverse". alegere categorie alege:
- "Smartphone Android" (confidence 0.94) ✅
- "Calculatoare/Telefonie" (0.89)
- "Diverse Electronice" (0.31)
Tu apreciezi #1 → anunțul apare în filtrul corect → vinzi cu 40% mai multe contacte.
Pentru locuri muncă — 167 subcat
Postezi "vacanță vânzător magazin alimentar Botanica". alegere categorie navighează cele 167 subcat și alege:
- "Vânzători magazin produse alimentare" (0.96) ✅
- "Vânzător general retail" (0.84)
- "Lucrător magazin food" (0.61)
Imposibil de făcut manual fără să cauți 5 minute prin meniu.
Pentru dealer auto cu mașini variate
Logan 2015, BMW Seria 3 2018, Mercedes Sprinter (utilitar). alegere categorie le clasifică automat:
- Logan → "Autoturisme/Berlină"
- BMW → "Autoturisme/Sedan/Premium"
- Sprinter → "Vehicule comerciale/Furgonete"
Fără să gândești manual la fiecare.
Pentru agenție imobiliară
"Apartament 2 camere Botanica renovat etaj 4". alegere categorie alege:
- "Apartamente cu 2 camere/Chișinău/Botanica" (0.97) ✅
- "Apartamente cu 2 camere/Chișinău" (0.91)
- "Vânzare apartamente/Chișinău" (0.78)
Output API
POST /api/agent/subcategory-suggest
Content-Type: application/json
{
"title": "Vând Logan 2015 stare bună",
"description": "Logan 1.5 dCi diesel manual, 180.000 km, primul proprietar.",
"photos": ["url1", "url2"]
}
Response:
{
"suggestions": [
{
"subcategory_id": 4521,
"name": "Autoturisme/Sedan",
"parent_category_id": 658,
"parent": "Transport",
"confidence": 0.94,
"path": "Transport > Autoturisme > Sedan"
},
{
"subcategory_id": 4523,
"name": "Autoturisme/Berlină",
"confidence": 0.87,
"path": "Transport > Autoturisme > Berlină"
},
{
"subcategory_id": 4530,
"name": "Schimb auto",
"confidence": 0.32,
"path": "Transport > Schimb"
}
],
"model_version": "f10-labse-2026-04",
"reranked_by_llm": false
}
Stack tehnic
| Component | Tool | Rol |
|---|---|---|
| Embeddings | LaBSE multilingual | RO + RU în același spațiu vectorial |
| Vector store | pgvector (Postgres) | Cosine similarity rapid |
| Vision boost | Florence-2 captioning | Adaugă funcții din foto |
| LLM re-rank | Claude Haiku 4.5 | Disambiguation cazuri ambigue (~10%) |
| Re-compute | Cron daily 03:00 | Centroizi actualizați |
bază de date schema
CREATE TABLE automator_999.subcategory_centroids (
subcategory_id INT PRIMARY KEY,
parent_category_id INT,
centroid VECTOR(768),
sample_count INT,
last_recompute TIMESTAMPTZ
);
Pricing
| Plan | Sugestii/lună | Vision boost |
|---|---|---|
| Free | 50 | ❌ |
| Starter | 500 | ❌ |
| Pro | 5.000 | ✅ |
| Business | nelimitat | ✅ + API |
Cost incremental:
- LaBSE local: $0
- Claude Haiku (10% disambiguation): ~$5/lună total
Integrare cu generator de anunț perfect Anunț Perfect
alegere categorie e component automat în generator de anunț perfect. Când publici cu inteligență artificială, subcategoria e aleasă din 310 fără să te întrebe nimic. Plus afișează top 3 ca să poți override.
Plus integrare cu cuvinte căutate Demand Signal — keywords trending influențează scorul (ex: "rate 0%" boost scor pentru subcategoria credit).
FAQ
Mai jos detalii despre LaBSE, accuracy și override manual.
Vezi în acțiune
Demo subcategory suggest — introduci titlu + descriere, vezi top 3 în <500ms.
Sau citește: Cum optimizezi anunțul Locuri muncă (167 subcat).