feat(robot): hunter v2.7, geocoding support, docker network fix, changelog update
This commit is contained in:
@@ -126,4 +126,10 @@ A technikai belépési pont.
|
||||
|
||||
### 5.2.2. TWINS Concept Update
|
||||
- A `User` (User) és `Person` (Shadow Identity) szétválasztása szigorú.
|
||||
- Belépéskor a rendszer a `User` táblából olvassa ki a `preferred_language` és `region_code` beállításokat, és ezeket a Token válaszban visszaadja a Frontendnek.
|
||||
- Belépéskor a rendszer a `User` táblából olvassa ki a `preferred_language` és `region_code` beállításokat, és ezeket a Token válaszban visszaadja a Frontendnek.
|
||||
|
||||
## 1.3 Shadow Identity & Merging Logic
|
||||
A rendszer támogatja a "Ghost Person" (Árnyék személy) entitásokat.
|
||||
- **Ghost Person:** Olyan `data.persons` rekord, amelyet a Robot 2 hozott létre nyilvános adatok (pl. cégjegyzék) alapján.
|
||||
- **Identity Linkage:** Regisztrációkor a `AuthService.complete_kyc` kötelezően ellenőrzi a meglévő Ghost rekordokat (Adószám/Név egyezés).
|
||||
- **Merge Action:** Találat esetén a rendszer összefűzi a technikai User fiókot a Ghost Person rekorddal, aktiválja a jogosultságokat, és megszünteti a Ghost státuszt.
|
||||
@@ -196,4 +196,9 @@ A rendszer az adatintegritás és a sebesség érdekében hibrid modellt haszná
|
||||
| :--- | :--- |
|
||||
| `data.addresses` | Konkrét házszám szintű címek (Hibrid hivatkozási pont). |
|
||||
| `data.geo_postal_codes` | Irányítószám és város kapcsolata (HU/EU támogatás). |
|
||||
| `data.user_stats` | Felhasználói XP, szintek és strike-ok tárolása. |
|
||||
| `data.user_stats` | Felhasználói XP, szintek és strike-ok tárolása. |
|
||||
|
||||
## 2.4 Financial & Enrichment Tables
|
||||
- **data.organization_financials:** Éves gazdasági adatok (árbevétel, profit, létszám) tárolása historikus elemzéshez.
|
||||
- **data.service_profiles.specialization_tags:** JSONB mező a szigorú szakmai szűréshez (pl. márkák, specifikus javítási típusok).
|
||||
- **data.service_profiles.google_place_id:** Külső validációs kulcs a Google Places API-hoz.
|
||||
@@ -303,4 +303,66 @@ A rendszer most már képes egyetlen KYC folyamat alatt aktiválni a felhasznál
|
||||
|
||||
### 🛠 Technical Changes
|
||||
- **Migrations:** Új Alembic migráció (`add_lang_and_region_to_user`) generálva és lefuttatva.
|
||||
- **Environment:** A `static/locales` mappa jogosultságai beállítva a Docker konténer számára.
|
||||
- **Environment:** A `static/locales` mappa jogosultságai beállítva a Docker konténer számára.
|
||||
|
||||
[2026.02.12] - Fundamentum és Robot Orchestration
|
||||
|
||||
FIX: Javítva a docker-compose v1/v2 összeférhetetlenség (ContainerConfig hiba).
|
||||
|
||||
FIX: Megszüntetve az ImportError: cannot import name 'FastAPILimiter' hiba a security.py modulban.
|
||||
|
||||
DATABASE: PostGIS Geometry típus implementálva a service_profiles táblában.
|
||||
|
||||
MODEL: Az Asset (Digital Twin) és ServiceProfile közötti kapcsolatok szinkronizálva az ownership_history modulon keresztül.
|
||||
|
||||
WORKERS: Új állapotvezérelt (State-driven) robotlogika bevezetése:
|
||||
|
||||
A szervizek alapértelmezetten ghost státusszal jönnek létre.
|
||||
|
||||
Bevezetve a last_audit_at mező az automatikus kivezetéshez (Soft-delete).
|
||||
|
||||
UX: A keresőmotor számára definiálva a "Nem megerősített szolgáltató" jelzés a bot által talált adatokhoz.
|
||||
📝 Részletes Összefoglaló az Elvégzett Munkáról
|
||||
|
||||
Környezet Stabilizálás: A modern Docker Engine-hez igazítottuk a parancsokat, megoldva a régi Python-alapú compose hibáit.
|
||||
|
||||
Adatmodell Integritás: Visszaállítottuk az összes kritikus mezőt (nettó érték, ÁFA, maradványérték, telemetria), így a rendszer alkalmas komplex flottakezelési feladatokra is.
|
||||
|
||||
Szerviz Életciklus: Kidolgoztunk egy olyan logikát, ahol a botok nem "szemetelik" az adatbázist, hanem egy ghost (árnyék) réteget hoznak létre. Ezek a szervizek csak akkor válnak teljesen hitelessé, ha a felhasználók interakcióba lépnek velük (Gamification) vagy az Admin jóváhagyja őket.
|
||||
|
||||
Robot Koordináció: A robotok immár nem ütköznek. Az egyik a járműkatalógust építi API-kból, a másik a térképi pontokat gyűjti és auditálja.
|
||||
|
||||
# Changelog - 2026-02-13
|
||||
## Service Finder Project - "Dunakeszi Detective" & Docker Infrastructure
|
||||
|
||||
### 🚀 Fejlesztések és Architektúra
|
||||
- **Robot 2.7 (Service Hunter) Implementálása:**
|
||||
- Hibrid adatgyűjtés bevezetése: OSM (OpenStreetMap) + Google Places API + Helyi CSV.
|
||||
- **Geocoding Integráció:** A CSV-ben megadott szöveges címek (pl. "Dunakeszi, Kikerics köz 4") automatikus GPS koordinátára fordítása a Google API segítségével.
|
||||
- **Trust Score alapok:** Különböző források eltérő bizalmi szinttel kerülnek rögzítésre (Manuális > Google > OSM).
|
||||
|
||||
- **Adatbázis és Modellek (ORM) Javítása:**
|
||||
- `Organization` és `Address` modellek szinkronizálása a valós adatbázis sémával.
|
||||
- Hiányzó mezők kezelése (City, Zip átmozgatása Organization szintre).
|
||||
- PostGIS geometria (POINT) kezelésének pontosítása.
|
||||
|
||||
- **Docker Infrastruktúra Stabilizálás:**
|
||||
- Hálózati hiba (`[Errno -2] Name or service not known`) elhárítása.
|
||||
- `shared_db_net` és `bridge` hálózatok megfelelő konfigurálása.
|
||||
- Konténer DNS beállítások fixálása (Google DNS fallback).
|
||||
- Adatbázis hostnév korrekció (`db` -> `shared-postgres`).
|
||||
|
||||
### 🧠 Üzleti Logika és Stratégia (Döntések)
|
||||
1. **Multi-Tenant Kezelés:** Egy címen több cég is létezhet. A rendszer nem vonja össze őket automatikusan, csak ha az adószám/név egyezik.
|
||||
2. **Adatvédelmi Elv (No-Delete):** A robot soha nem töröl adatot fizikailag. Ha egy forrás megszűnik, a rekord "archived" vagy "review_needed" státuszt kap, de az adatbázisban marad.
|
||||
3. **Emberi Felügyelet:** A duplikációk összefűzése vagy a hibás adatok törlése Admin/Moderátor jogkör, nem a robot automatizmusa.
|
||||
4. **Dinamikus Adatfrissítés:** A robot a jövőben frissítheti a manuálisan felvitt adatokat is (pl. ha változik a nyitvatartás a Google-ön), de a prioritási szabályokat még finomítani kell.
|
||||
|
||||
### 🐛 Javított Hibák
|
||||
- `socket.gaierror`: Docker konténer internet elérés és belső névfeloldás javítva.
|
||||
- `AttributeError: 'city'`: SQLAlchemy modell mezőleképezési hiba javítva.
|
||||
- Függőségi hiba (`depends_at` -> `depends_on`) a docker-compose fájlban.
|
||||
|
||||
### 🔜 Következő Lépések
|
||||
- Gamification és Moderátori felület (Admin UI) tervezése az adatok tisztítására.
|
||||
- Logikai szabályrendszer (Business Rules) véglegesítése a "Robot vs. Ember" adatkonfliktusokra.
|
||||
@@ -218,4 +218,9 @@ Kapcsolatot teremt egy Jármű (`Asset`) és egy Szervezet (`Organization`) köz
|
||||
- **status**: Active / Released
|
||||
- **Validáció:** Egy jármű egyszerre csak egy szervezetnél lehet `active` státuszban.
|
||||
|
||||
*(Megjegyzés: A v1.2.5 frissítés javította az ORM kapcsolatokat, így a lekérdezések most már közvetlenül elérik az `assignment.organization` objektumot.)*
|
||||
*(Megjegyzés: A v1.2.5 frissítés javította az ORM kapcsolatokat, így a lekérdezések most már közvetlenül elérik az `assignment.organization` objektumot.)*
|
||||
|
||||
## 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.
|
||||
@@ -39,4 +39,15 @@ Keresési algoritmus:
|
||||
|
||||
Free User: 1. Hirdetők, 2. Légvonalbeli távolság, 3. Trust Score.
|
||||
|
||||
Útvonaltervezés (Premium): Külső motor (pl. OSRM vagy GraphHopper) integráció a pontos elérési időhöz.
|
||||
Útvonaltervezés (Premium): Külső motor (pl. OSRM vagy GraphHopper) integráció a pontos elérési időhöz.
|
||||
|
||||
## 3.0 Specialization & Filtering (Bentley Logic)
|
||||
A keresőmotor prioritási rendszere:
|
||||
1. **Explicit Specialist:** Specializációs tag-ek alapján (pl. brand: Bentley).
|
||||
2. **General Service:** Univerzális javítók, ahol nincs kizáró ok.
|
||||
3. **Exclusion Logic:** Ha a keresett márka Bentley, de a szerviz specializációja csak "BMW", a találat tiltva van.
|
||||
|
||||
## 4.0 Trust Score Multipliers
|
||||
- **Economic Stability:** 3+ év nyereséges működés (+20 pont).
|
||||
- **Physical Validation:** Google Street View / Robot Photo Verification (+15 pont).
|
||||
- **Verified Staff:** Ha a szerelőregisztrációk száma > 2 (+10 pont).
|
||||
@@ -38,4 +38,65 @@ A Robot 1 (Catalog Filler) egy rétegelt feltöltési stratégiát követ:
|
||||
|
||||
Layer 2 (Technical Depth): Folyadékmennyiségek, kerékméretek, meghúzási nyomatékok.
|
||||
|
||||
Layer 3 (Service Relation): Melyik alkatrész/szerviz igény kapcsolódik az adott típushoz.
|
||||
Layer 3 (Service Relation): Melyik alkatrész/szerviz igény kapcsolódik az adott típushoz.
|
||||
|
||||
API Strategy
|
||||
|
||||
24. Robot Scout Adatforrások:
|
||||
|
||||
Járművek: A robot a CarQuery API és a NHTSA vPIC API kombinációját használja a 2000 utáni EU-s modellek feltöltéséhez. A ciklusidő: 1 év/5 perc.
|
||||
|
||||
Szervizek: Az OSM Overpass API az elsődleges forrás a lokációkhoz. A validációt a Robot 2 végzi a Google Places adatokkal való összevetéssel (Trust Engine).
|
||||
|
||||
Motorok: Külön prioritást élveznek a prémium márkák (BMW, KTM, Honda) szakszervizei a "Specialization Tag" rendszerben.
|
||||
|
||||
📘 MASTER BOOK KIEGÉSZÍTÉS (v2.4) - 2026.02.13
|
||||
20.4 Szerviz Életciklus és Automatikus Kivezetés (Soft-Delete)
|
||||
|
||||
A Marketplace tisztaságát az automatikus inaktiválási folyamat garantálja:
|
||||
|
||||
Státuszok:
|
||||
|
||||
ghost: Bot által talált, nem hitelesített rekord.
|
||||
|
||||
active: Működő, publikus szerviz.
|
||||
|
||||
flagged: Gyanús (pl. bezártnak jelentett), felülvizsgálatra vár.
|
||||
|
||||
inactive: Megszűnt vagy inaktivált szerviz (Soft-deleted).
|
||||
|
||||
Audit ciklus: A Robot 2 (Auditor) 90 naponta minden active szervizt keresztellenőriz külső forrásokkal (OSM/Google). Ha egy hely "Permanently Closed", a robot átállítja: is_active = False és status = 'inactive'.
|
||||
|
||||
22.4 Robot Orchestration (Koordináció)
|
||||
|
||||
A robotok az adatbázist használják "jelzőtáblának", így elkerülik az ütközéseket:
|
||||
|
||||
Robot 1 (Catalog Scout): Kizárólag a data.vehicle_catalog táblát írja.
|
||||
|
||||
Robot 2 (Hunter/Auditor): * A Hunter csak olyan helyeket rögzít, amik még nincsenek az organizations táblában.
|
||||
|
||||
Az Auditor csak az is_active=True rekordokat vizsgálja felül.
|
||||
|
||||
Robot 3 (OCR/Detective): Dokumentum-alapú validálást végez. Ha az OCR egy inactive szervizt talál egy friss számlán, nem írja felül a robotot, hanem flagged státuszba teszi a szervizt manuális ellenőrzésre ("Lehet, hogy mégis kinyitott?").
|
||||
|
||||
20.4 Szerviz Állapotok és Láthatóság
|
||||
|
||||
ghost (Alapértelmezett): Bot által talált rekord.
|
||||
|
||||
Keresés: Megjelenik, de kötelező "Nem megerősített szolgáltató" jelzéssel ellátni.
|
||||
|
||||
Gamification: Teljesen nyitott. A felhasználók értékelhetik, fotózhatják. Minden ilyen interakció növeli a trust_score-t.
|
||||
|
||||
active: Megerősített szolgáltató (Admin vagy magas Trust Score alapján).
|
||||
|
||||
flagged: Felülvizsgálat alatt (pl. ellentmondásos adatok).
|
||||
|
||||
inactive: Igazoltan megszűnt. Csak ez az állapot rejtett a keresés elől.
|
||||
|
||||
## 2.0 Robot 2 (The Detective)
|
||||
A Robot 2 három fázisban dolgozik:
|
||||
- **Phase 1 (Discovery):** OSM/Overpass alapú koordináta és név rögzítés.
|
||||
- **Phase 2 (Deep Enrichment):** Google Places, Web Scraping (Email, telefon, tulajdonos neve).
|
||||
- **Phase 3 (Financial Audit):** Nyilvános cégadatok (Árbevétel, létszám, adózott eredmény) éves szinkronizálása.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user