feat: Robot ecosystem v1.2.6 - Google Search RAG & Master-Merge logic stabilized
This commit is contained in:
@@ -210,4 +210,14 @@ A rendszer az adatintegritás és a sebesség érdekében hibrid modellt haszná
|
||||
* **`data.wallets`**: 3-as osztású egyenleg (`earned`, `purchased`, `coins`).
|
||||
* **`data.financial_ledger`**: Pénzügyi tranzakciók főkönyve.
|
||||
* **`data.security_audit_logs`**: Biztonsági események és 4-szem jóváhagyások.
|
||||
* **`data.org_sales_assignments`**: Cég-Üzletkötő kapcsolat (Farming jog).
|
||||
* **`data.org_sales_assignments`**: Cég-Üzletkötő kapcsolat (Farming jog).
|
||||
|
||||
## 4. MDM és Jármű Katalógus Struktúra
|
||||
A rendszer hibrid (Relációs + JSONB) modellt használ a skálázhatóság érdekében.
|
||||
|
||||
### 4.1 Táblák:
|
||||
* **data.vehicle_model_definitions**: A "Szent Grál". Tartalmazza a márka, kód, marketing név mellett a fix numerikus adatokat (ccm, kw, weight) a gyors szűréshez.
|
||||
* **data.feature_definitions**: Globális szótár az összes extráról (ABS, Halradar, Retarder stb.), kategóriákba sorolva.
|
||||
* **data.model_feature_maps**: Összeköti a modellt az extrákkal.
|
||||
- `availability`: [STANDARD, OPTIONAL, ACCESSORY]
|
||||
* **data.vehicle_model_reviews**: Felhasználói vélemények a típusról (1-5 csillag, szöveges).
|
||||
@@ -30,4 +30,45 @@
|
||||
## 📅 SPRINT 2 (Marketplace MVP)
|
||||
1. **OCR Pipeline:** MinIO feltöltés + Tesseract teszt.
|
||||
2. **Service Request:** Frontend űrlap ajánlatkéréshez.
|
||||
3. **Ranking Engine:** Távolság + Súlyozás algoritmus implementálása.
|
||||
3. **Ranking Engine:** Távolság + Súlyozás algoritmus implementálása.
|
||||
|
||||
# 13. Roadmap és Technikai Adósság (v1.2.6)
|
||||
|
||||
Ez a dokumentum rögzíti a rendszer fejlesztési fázisait és azokat a technikai kompromisszumokat, amelyeket a gyors haladás érdekében hoztunk, de később felülvizsgálatot igényelnek.
|
||||
|
||||
## 13.1 Rövid távú Roadmap (Q1-Q2)
|
||||
|
||||
### 1. Intelligens Kereső API (Fuzzy Search)
|
||||
- **Cél:** A `synonyms` mezőben tárolt alternatív nevek kihasználása.
|
||||
- **Megvalósítás:** PostgreSQL `tsvector` és `GIN` indexek használata, hogy a kereső akkor is találjon eredményt, ha a felhasználó "Tracer"-t ír be "Yamaha MT-09 Tracer" helyett.
|
||||
|
||||
|
||||
### 2. Média Kezelés & MinIO Integráció
|
||||
- **Cél:** Járműfotók automatikus beszerzése.
|
||||
- **Megvalósítás:** Új bot fejlesztése, amely a dúsított `marketing_name` alapján hivatalos sajtófotókat keres, és azokat a már futó MinIO objektumtárba menti.
|
||||
|
||||
### 3. Robot 4: Service Hunter (Szerviz-logika)
|
||||
- **Cél:** Karbantartási tervek generálása.
|
||||
- **Megvalósítás:** A `specifications` (olajmennyiség, gyertya típus) mezőkből kiindulva szerviz-csomagok és árak kalkulálása.
|
||||
|
||||
## 13.2 Technikai Adósság (Tech Debt)
|
||||
|
||||
### 1. Adattípus Optimalizálás: JSON vs. JSONB
|
||||
- **Helyzet:** A `synonyms` és `specifications` mezők jelenleg `JSON` típusúak.
|
||||
- **Adósság:** A Postgres függvények (pl. `jsonb_array_length`) használatához folyamatos casting (`::jsonb`) szükséges, ami lassítja a lekérdezéseket.
|
||||
- **Megoldás:** Egy Alembic migráció keretében az összes JSON oszlopot át kell állítani `JSONB` típusra.
|
||||
|
||||
|
||||
### 2. "N/A-{id}" és "UNKNOWN-{id}" Kódok Tisztítása
|
||||
- **Helyzet:** A NOT NULL és UNIQUE kényszerek miatt a robot egyedi ál-kódokat generál, ha az AI nem talál gyári kódot.
|
||||
- **Adósság:** Ezek nem valódi technikai kódok.
|
||||
- **Megoldás:** Szükséges egy manuális felülvizsgálati (Manual Review) felület, ahol az operátorok a `N/A` kódú rekordokat ellenőrizhetik vagy egyesíthetik.
|
||||
|
||||
### 3. AI Response Parsing (Regex Workaround)
|
||||
- **Helyzet:** A Gemini Search Tool letiltja a kényszerített JSON választ, ezért Regex-szel bányásszuk ki a JSON-t a nyers szövegből.
|
||||
- **Adósság:** Ez a megoldás törékeny, ha az AI stílusa jelentősen megváltozik.
|
||||
- **Megoldás:** Monitorozni kell az AI API frissítéseit; amint a Google engedélyezi a Search + Controlled Generation kombinációt, vissza kell térni a natív JSON módra.
|
||||
|
||||
## 13.3 Hosszú távú Vízió (Q3+)
|
||||
- **Trust Engine:** A járművek történetének és szervizadatainak hitelesítése.
|
||||
- **Global Fleet Insight:** Flottaszintű elemzések készítése a dúsított MDM adatok alapján.
|
||||
@@ -481,4 +481,28 @@ Kérlek, ellenőrizd, hogy ezek a fájlok a legfrissebb verziót tartalmazzák-e
|
||||
|
||||
1. **Service Réteg Implementálása:** Megírni a logikát, ami ténylegesen számolja a 10/5%-os jutalékot és beírja a `FinancialLedger`-be.
|
||||
2. **Admin UI:** Felületet készíteni a `system_parameters` (Jutalék szintek) állítására.
|
||||
3. **Robot v1.8:** A "Ghost" szervizek bekötése az új `Person` logikába (automata `identity_hash` generálás a cégadatokból).
|
||||
3. **Robot v1.8:** A "Ghost" szervizek bekötése az új `Person` logikába (automata `identity_hash` generálás a cégadatokból).
|
||||
|
||||
# Changelog
|
||||
|
||||
## [v1.1.0] - 2026-02-17 "The Awakening"
|
||||
### 🚀 Hozzáadva (New Features)
|
||||
- **AI Service (Gemini Integration):** `app/services/ai_service.py` létrehozva. A rendszer mostantól képes a "Yamaha 4HN" típusú zajos adatokból tiszta marketing neveket és műszaki specifikációkat generálni.
|
||||
- **Robot 2 (Technical Enricher):** `app/workers/technical_enricher.py` frissítve v1.1-re. Hibrid működés: RDW adatbázis + AI kiegészítés.
|
||||
- **Robot 3 (OCR - Előkészület):** `app/workers/ocr_robot.py` váza elkészült a dokumentumok feldolgozásához.
|
||||
- **Reporting:** `app/scripts/morning_report.py` létrehozva a napi robot-tevékenység összefoglalására.
|
||||
- **Logging:** Új `ProcessLog` tábla létrehozva az `audit` sémában a háttérfolyamatok nyomon követésére.
|
||||
|
||||
### 🐛 Javítva (Bug Fixes)
|
||||
- **Docker Infrastructure:** - Javítva a `KeyError: 'ContainerConfig'` hiba a Docker Compose V2-re váltással.
|
||||
- Javítva az "empty database URL" hiba a migrációnál (`.env` változók helyes átadása).
|
||||
- Hálózati beragadások (Gitea/Nginx conflict) feloldva.
|
||||
- **Circular Imports:** Megszüntetve a `SystemParameter` modell duplikációja (`system_config.py` vs `system.py`). Minden szerviz (`Auth`, `Security`, `Cost`, `Gamification`) mostantól a központi `app.models`-ből importál.
|
||||
- **Swagger UI:** Az API sikeresen elindul, a dokumentáció elérhető a `/docs` végponton.
|
||||
|
||||
### ⚙️ Infrastruktúra (Refactor)
|
||||
- **Docker Compose:** Teljes tisztítás. Duplikált környezeti változók törölve, `env_file` használat optimalizálva.
|
||||
- **Services:** A robotok (`enricher`, `catalog`, `hunter`) külön konténerekbe szervezve, `unbuffered` python kimenettel a valós idejű logolásért.
|
||||
|
||||
### 🛡️ Biztonság
|
||||
- `.env` fájl szerkezete egységesítve, duplikációk eltávolítva.
|
||||
@@ -223,4 +223,13 @@ Kapcsolatot teremt egy Jármű (`Asset`) és egy Szervezet (`Organization`) köz
|
||||
## 4.0 Catalog 2022+ Strategy (Hybrid Mode)
|
||||
A CarQueryAPI korlátai miatt 2022 utáni modelleknél a Robot 1 az alábbi hibrid logikát alkalmazza:
|
||||
1. **API Ninjas & Auto-Data Sync:** Elsődleges technikai forrás.
|
||||
2. **European Scraper Mode:** A mobile.de és autoscout24.hu portálok típusválasztóinak (meta-adatok) aratása a legfrissebb modellek és motorváltozatok rögzítéséhez.
|
||||
2. **European Scraper Mode:** A mobile.de és autoscout24.hu portálok típusválasztóinak (meta-adatok) aratása a legfrissebb modellek és motorváltozatok rögzítéséhez.
|
||||
|
||||
## 6. Szerviz Logika és Intervallumok
|
||||
A szervizkönyv nem csak eseménynapló, hanem előrejelző rendszer.
|
||||
|
||||
### 6.1 Karbantartási Terv (Maintenance Plan)
|
||||
Az MDM-ben rögzített `specifications` tartalmazza a fődarabok szervizigényét:
|
||||
- **Folyadékok:** Típus, mennyiség, csereperiódus (km/hónap).
|
||||
- **Alkatrészek:** Gyári kódok és alternatívák (cross-reference).
|
||||
- **Biztonság:** Időszakos vizsgák (érintésvédelem, emelőhátfal, hajó szemle).
|
||||
@@ -73,4 +73,13 @@ Minden talált entitás pontszámot kap:
|
||||
### 3. Döntési Szintek
|
||||
- **80+ pont:** Ellenőrzött (Verified) - Automatikus publikálás.
|
||||
- **40-79 pont:** Moderációra vár - Manuális adminisztrátori jóváhagyás szükséges.
|
||||
- **<40 pont:** Elutasítva/Inaktív - Marad a Stage táblában.
|
||||
- **<40 pont:** Elutasítva/Inaktív - Marad a Stage táblában.
|
||||
|
||||
## 6. Szerviz Logika és Intervallumok
|
||||
A szervizkönyv nem csak eseménynapló, hanem előrejelző rendszer.
|
||||
|
||||
### 6.1 Karbantartási Terv (Maintenance Plan)
|
||||
Az MDM-ben rögzített `specifications` tartalmazza a fődarabok szervizigényét:
|
||||
- **Folyadékok:** Típus, mennyiség, csereperiódus (km/hónap).
|
||||
- **Alkatrészek:** Gyári kódok és alternatívák (cross-reference).
|
||||
- **Biztonság:** Időszakos vizsgák (érintésvédelem, emelőhátfal, hajó szemle).
|
||||
@@ -1,7 +0,0 @@
|
||||
21.1 Adatmélység és Idővonal
|
||||
|
||||
A rendszer célja a teljes EU-s járműpark lefedése a 2000-es évjárattól kezdődően.
|
||||
|
||||
Hierarchia: Make -> Model -> Generation -> Engine Variant -> Trim Level.
|
||||
|
||||
Kezdeti adatok: Az első fázisban a robot a 4 alapszintet tölti (Márka, Típus, Évjárat, Motor), majd iteratívan mélyíti a factory_data JSONB mezőt (olajmennyiség, nyomaték, guminyomás stb.).
|
||||
57
docs/V01_gemini/21_DEEP ASSET CATALOG.md
Normal file
57
docs/V01_gemini/21_DEEP ASSET CATALOG.md
Normal file
@@ -0,0 +1,57 @@
|
||||
21.1 Adatmélység és Idővonal
|
||||
|
||||
A rendszer célja a teljes EU-s járműpark lefedése a 2000-es évjárattól kezdődően.
|
||||
|
||||
Hierarchia: Make -> Model -> Generation -> Engine Variant -> Trim Level.
|
||||
|
||||
Kezdeti adatok: Az első fázisban a robot a 4 alapszintet tölti (Márka, Típus, Évjárat, Motor), majd iteratívan mélyíti a factory_data JSONB mezőt (olajmennyiség, nyomaték, guminyomás stb.).
|
||||
|
||||
# 21. Deep Asset Catalog (MDM)
|
||||
|
||||
Ez a dokumentum írja le a járművek technikai mélységét kategóriánként.
|
||||
|
||||
## 1. Kategória Specifikus Adatok (JSONB Schemas)
|
||||
- **Személyautó:** Klíma fajták (digit, többzónás), hajtáslánc, ADAS rendszerek.
|
||||
- **Teherautó/Kamion:** Tengelyek száma, fülke típusa, retarder típusok, menetíró.
|
||||
- **Motorkerékpár:** Munkaütem, hűtés módja, táskák/dobozok konfigurációja.
|
||||
- **Hajó:** Merülés, vízkiszorítás, orrsugárkormány, navigációs elektronika.
|
||||
|
||||
## 2. Numerikus Indexelés
|
||||
A gyors keresés érdekében a következő mezők fix oszlopok:
|
||||
- `engine_capacity` (ccm)
|
||||
- `power_kw` (kW)
|
||||
- `weight_kg` (Súly)
|
||||
- `year_from / year_to` (Gyártási időszak)
|
||||
|
||||
# 21. Deep Asset Catalog & Master Data Management (MDM)
|
||||
|
||||
Ez a modul a rendszer "agyát" képezi, ahol a zajos külső forrásokból származó adatok tiszta, dúsított és egyedi járműspecifikációkká alakulnak.
|
||||
|
||||
## 21.1 Adatmodell (vehicle_model_definitions)
|
||||
A katalógus nem egyszerűen rekordokat tárol, hanem egy Master-Slave viszonyrendszert valósít meg a duplikációk elkerülése érdekében.
|
||||
|
||||
### Kulcsfontosságú mezők:
|
||||
- `technical_code`: Egyedi gyári azonosító (pl. PC44, ZX600R). Elsődleges kulcs a deduplikációhoz.
|
||||
- `parent_id`: Önhivatkozás. Ha egy rekord duplikátum, itt mutat a Master (eredeti) rekordra.
|
||||
- `synonyms` (JSONB): Alternatív elnevezések gyűjteménye (pl. "Tracer 9", "MT-09 Tracer") a kereshetőség javítására.
|
||||
- `year_from / year_to`: Gyártási intervallumok a generációk megkülönböztetéséhez.
|
||||
- `specifications` (JSONB): Műszaki adatok (olajmennyiség, gyertya típus, hűtőfolyadék).
|
||||
|
||||
## 21.2 Master-Merge Logika
|
||||
A rendszer az "Igazság Hierarchiáját" követi az adatok mentésekor:
|
||||
1. **Hatósági Adat (RDW):** CCM és teljesítmény (kW) forrása.
|
||||
2. **AI Adatbányászat (Gemini + Google Search):** Technikai kódok, évjáratok és szervizadatok forrása.
|
||||
3. **Manuális felülbírálat:** Legmagasabb prioritású `status = 'manual_check'`.
|
||||
|
||||
### Összefésülési szabály (Deduplikáció):
|
||||
A Robot 2 csak akkor olvaszt össze két rekordot, ha:
|
||||
- A `make` (gyártó) egyezik.
|
||||
- A `technical_code` azonos és nem 'N/A'.
|
||||
- A `engine_capacity` (CCM) megegyezik.
|
||||
|
||||
|
||||
|
||||
## 21.3 Állapotgépek (Status Lifecycle)
|
||||
- `unverified`: Alapállapot, csak nyers adatok.
|
||||
- `ai_enriched`: Sikeresen dúsított, hitelesített Master rekord.
|
||||
- `duplicate`: Felismert másolat, amely egy Master rekordhoz van láncolva.
|
||||
@@ -110,4 +110,55 @@ A robotok és az n8n szoros együttműködésben dolgoznak.
|
||||
- **Event Hunter:** n8n workflow figyeli a motoros/autós találkozókat és eseményeket, majd összeköti őket a helyi szervizpartnerekkel.
|
||||
- **Gamification Link:** A robot regisztrálja a felhasználói validálásokat és kiosztja a pontokat/krediteket.
|
||||
|
||||
|
||||
# 22. Robot Ökoszisztéma
|
||||
|
||||
A rendszer automatizált adatgyűjtő és dúsító ágensei.
|
||||
|
||||
## 1. Model Enrichment Robot (Dúsító)
|
||||
- **Működés:** Hajnali 01:00 - 05:00 között.
|
||||
- **Logika:** 1. Új `unverified` kódok keresése.
|
||||
2. RDW API lekérdezés (Holland alapok).
|
||||
3. AI (Gemini) Deep Scraping: Marketing név, felszereltségi lista, szervizintervallumok kinyerése.
|
||||
4. Validálás a JSON Sémák alapján.
|
||||
5. Master státusz beállítása.
|
||||
|
||||
## 2. Resource Management
|
||||
A robot figyeli a szerver terhelését. Ha a CPU > 70%, az AI lekérdezéseket lassítja (throttle), hogy ne zavarja a hajnali biztonsági mentéseket.
|
||||
|
||||
# 22. Robot Ökoszisztéma Specifikáció
|
||||
|
||||
A rendszer autonóm robotok hálózatából áll, amelyek egymásra épülve tisztítják és dúsítják a flottaszintű adatokat.
|
||||
|
||||
## 22.1 Robot 1: Catalog Scraper (RDW)
|
||||
- **Feladata:** Külső API-k (pl. Holland RDW) folyamatos monitorozása és új járművek importálása.
|
||||
- **Működés:** Nyers adatokat hoz létre `unverified` státusszal.
|
||||
|
||||
## 22.2 Robot 2: Technical Enricher & Master Merge (v1.2.6)
|
||||
Ez a legkomplexebb modul, amely AI-t és webes keresést használ.
|
||||
|
||||
### Főbb képességek:
|
||||
- **Google Search Integration (RAG):** Ha az AI nem ismeri a modellkódot, valós időben keres a gyártói oldalakon.
|
||||
- **Safe-Merge Technológia:** Megakadályozza a technikai kód nélküli rekordok véletlen összevonását (`N/A-{id}` generálásával).
|
||||
- **Atomi tranzakciókezelés:** Minden mentés külön tranzakció, így a hiba nem szakítja meg a tömeges feldolgozást.
|
||||
|
||||
### Működési folyamat:
|
||||
1. Rekord kiválasztása (`status = unverified`).
|
||||
2. RDW kiegészítő adatok lekérése.
|
||||
3. Gemini 2.0 Flash meghívása keresőeszközzel.
|
||||
4. JSON parseolás és kód-validáció.
|
||||
5. Deduplikáció ellenőrzése és mentés.
|
||||
|
||||
|
||||
|
||||
## 22.3 Robot 3: OCR & Document AI
|
||||
- **Feladata:** Feltöltött okmányok, számlák és kilométeróra állások felismerése.
|
||||
- **Technológia:** Multimodális Gemini 2.0 elemzés.
|
||||
- **Kimenet:** Strukturált JSON, amely azonnal validálható a katalógus (R2) adataival.
|
||||
|
||||
## 22.4 Robot 4: Service Hunter (Tervezett)
|
||||
- **Cél:** A dúsított technikai adatok alapján szervizpartnerek és árak keresése.
|
||||
- **Input:** Robot 2 által generált szerviz-specifikációk (olaj típus, mennyiség).
|
||||
|
||||
## 22.5 Robot Monitoring & Operáció
|
||||
A robotok állapotát nem csak SQL-ben, hanem az n8n Dashboardon és a logok szintjén is követjük.
|
||||
- **Hibakezelés:** Automatikus visszalépés és ideiglenes kódgenerálás (`RESET-`, `UNKNOWN-`) az adatbázis kényszerek (Unique, Not Null) betartása érdekében.
|
||||
Reference in New Issue
Block a user