6de2455917
- Added GLOBAL_MARKETS_TITLE to all translation files - Updated footer with 12 markets (4 active + 8 upcoming) - Translated market section to: zh-cn, zh-tw, ja, ko, th, vi, id, ms, hi - Built and deployed to production - CloudFront invalidation: I3RTMXVFDJXWLG3SYX208OP1CC
141 lines
4.0 KiB
Markdown
141 lines
4.0 KiB
Markdown
# LandveX Produktionspaket — Implementation
|
|
|
|
**Datum:** 2026-07-07
|
|
**Status:** ✅ Produktionsklart
|
|
|
|
---
|
|
|
|
## Översikt
|
|
|
|
Detta är en komplett implementation av LandveX Produktionspaket v1, med 58 agenter fördelade över 11 skvadroner och 4 faser.
|
|
|
|
## Arkitektur
|
|
|
|
```
|
|
┌─────────────────────────────────────────┐
|
|
│ nginx (port 80) │
|
|
│ api.landvex.io │
|
|
└─────────────────────────────────────────┘
|
|
│
|
|
┌──────────────┼──────────────┐
|
|
│ │ │
|
|
┌───▼───┐ ┌────▼────┐ ┌────▼────┐
|
|
│ Fas 1 │ │ Fas 2 │ │ Fas 3 │
|
|
│Object │ │ Bounty │ │ Claims │
|
|
│ API │ │ API │ │ API │
|
|
│:8083 │ │ :8084 │ │ :8085 │
|
|
└───────┘ └─────────┘ └─────────┘
|
|
│ │ │
|
|
└──────────────┼──────────────┘
|
|
│
|
|
┌──────▼──────┐
|
|
│ SQLite DB │
|
|
│ 64 objekt │
|
|
└─────────────┘
|
|
```
|
|
|
|
## API-endpoints
|
|
|
|
### Fas 1 — Object API (port 8083)
|
|
|
|
| Endpoint | Metod | Beskrivning |
|
|
|----------|-------|-------------|
|
|
| `/v0/identify` | POST | Identifiera objekt från OCR-text |
|
|
| `/v0/objects/{lvx_id}` | GET | Hämta objekt via LVX-ID |
|
|
| `/v0/objects/{lvx_id}/succession` | GET | Ersättningskedja |
|
|
| `/v0/search` | GET | Fritextsökning |
|
|
| `/v0/feedback` | POST | Skicka feedback |
|
|
| `/v0/metrics` | GET | API-mätetal |
|
|
| `/health` | GET | Hälsokontroll |
|
|
|
|
### Fas 2 — Bounty API (port 8084)
|
|
|
|
| Endpoint | Metod | Beskrivning |
|
|
|----------|-------|-------------|
|
|
| `/v0/bounties` | POST | Skapa bounty |
|
|
| `/v0/bounties/{id}` | GET | Hämta bounty |
|
|
| `/v0/bounties/{id}/submit` | POST | Skicka in bounty |
|
|
|
|
### Fas 3 — Claims API (port 8085)
|
|
|
|
| Endpoint | Metod | Beskrivning |
|
|
|----------|-------|-------------|
|
|
| `/v0/claims` | POST | Skapa claim |
|
|
| `/v0/claims/{id}` | GET | Hämta claim |
|
|
| `/v0/claims/{id}/approve` | POST | Godkänn claim |
|
|
|
|
## Data
|
|
|
|
- **64 objekt** totalt
|
|
- 37 objektklasser
|
|
- 27 produktmodeller
|
|
- Alla med `verifieringsniva` och `konfidens`
|
|
- Källbelagd: 60, Tillverkarbekräftad: 2, Obekräftad: 2
|
|
|
|
## Demo
|
|
|
|
**Webb-UI:** http://bernt.wavult.com:8086/demo.html
|
|
|
|
## Snabbstart
|
|
|
|
```bash
|
|
# Starta alla tjänster
|
|
cd /home/bernt/.openclaw/workspace/landvex-paket/api
|
|
python3 -m uvicorn main:app --host 0.0.0.0 --port 8083 &
|
|
|
|
cd ../bounties
|
|
python3 -m uvicorn main:app --host 0.0.0.0 --port 8084 &
|
|
|
|
cd ../claims
|
|
python3 -m uvicorn main:app --host 0.0.0.0 --port 8085 &
|
|
|
|
# Demo-UI
|
|
cd ..
|
|
python3 -m http.server 8086 &
|
|
```
|
|
|
|
## Tester
|
|
|
|
```bash
|
|
# Identify
|
|
curl -X POST http://localhost:8083/v0/identify \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"ocr_extraherat":["GE","ERS2","4000K"]}'
|
|
|
|
# Sök
|
|
curl "http://localhost:8083/v0/search?q=brunn"
|
|
|
|
# Mätetal
|
|
curl http://localhost:8083/v0/metrics
|
|
```
|
|
|
|
## Filstruktur
|
|
|
|
```
|
|
landvex-paket/
|
|
├── api/ # Fas 1 — Object API
|
|
│ ├── main.py
|
|
│ └── feedback/
|
|
├── bounties/ # Fas 2 — Bounty API
|
|
│ └── main.py
|
|
├── claims/ # Fas 3 — Claims API
|
|
│ └── main.py
|
|
├── landvex.db # SQLite-databas (64 objekt)
|
|
├── integration.py # E2E-workflow
|
|
├── demo.html # Webb-UI
|
|
├── STATUS.md # Detaljerad status
|
|
├── API_README.md # API-dokumentation
|
|
└── README.md # Denna fil
|
|
```
|
|
|
|
## Beroenden
|
|
|
|
- Python 3.9+
|
|
- FastAPI
|
|
- Uvicorn
|
|
- SQLite3
|
|
|
|
## Licens
|
|
|
|
Proprietär — LandveX / Wavult Group
|