Files
boc/GVIS_QX_INTEGRATION.md
T

206 lines
6.0 KiB
Markdown
Raw Normal View History

# GVIS — quiXzoom Integration Spec
## Mission Type Mapping
Varje GVIS-objekt blir en quiXzoom mission type med AI-prompt och zoomer-instruktion.
### Exempel: TRN-001 (Asfalt)
```json
{
"mission_type": "gvis-trn-001",
"namn": "Asfaltinspektion",
"gvis_id": "TRN-001",
"beskrivning": "Dokumentera asfaltens skick på utsatt sträcka",
"betalning": "150-300 kr",
"tid": "15-30 min",
"utrustning": "Smartphone",
"ai_prompt": {
"system": "Du är en asfaltspecialist. Bedöm asfaltens skick från fotografier.",
"kontrollpunkter": [
"Identifiera potthål (djup >2cm, diameter >10cm)",
"Identifiera sprickor (bredd >2cm, längd >30cm)",
"Identifiera sättningar (djup >3cm)",
"Identifiera spårskärpning (djup >1cm)"
],
"output": {
"skick": "0-100",
"risknivå": "1-5",
"prioritet": "information/underhåll/åtgärd/akut/kritisk",
"typ_av_skada": "string",
"omfattning": "string",
"rekommenderad_åtgärd": "string",
"åtgärdstid": "string"
}
},
"zoomer_instruktion": {
"steg": [
"Navigera till utsatt GPS-position",
"Fotografera asfalten rakt ovanifrån (90°)",
"Fotografera asfalten i 45° vinkel för djupbedömning",
"Fotografera eventuella skador med närbild",
"Fotografera omgivningen för kontext",
"Bekräfta position i appen"
],
"krav": [
"Minst 3 foton",
"Dagsljus eller god belysning",
"Inga fordon i bild",
"GPS aktiverad"
]
},
"validering": {
"min_foton": 3,
"max_avstand_m": 10,
"min_upplosning": "12MP",
"godkand_vinkel": ["90", "45"]
}
}
```
### Exempel: HAM-024 (Livboj)
```json
{
"mission_type": "gvis-ham-024",
"namn": "Livbojskontroll",
"gvis_id": "HAM-024",
"beskrivning": "Verifiera att livboj finns på plats och är i brukbart skick",
"betalning": "100-200 kr",
"tid": "5-10 min",
"utrustning": "Smartphone",
"ai_prompt": {
"system": "Du är en sjösäkerhetsspecialist. Bedöm livbojens skick.",
"kontrollpunkter": [
"Livboj finns på plats",
"Stolpen står rakt (lutning <5°)",
"Lina finns och är hel",
"Bojen är hel (inga sprickor/hål)",
"Reflex finns och är synlig",
"Skylt finns och är läsbar",
"Fri åtkomst (inga hinder inom 2m)",
"Ingen korrosion på stolpe/fäste",
"Inga hinder som blockerar användning"
],
"output": {
"skick": "0-100",
"risknivå": "1-5",
"saknas": "boolean",
"skadad": "boolean",
"blockerad": "boolean"
}
},
"zoomer_instruktion": {
"steg": [
"Navigera till livbojens GPS-position",
"Fotografera hela livbojen med omgivning (5m avstånd)",
"Fotografera närbild av boj, lina och reflex",
"Fotografera stolpe och fundament",
"Fotografera eventuella hinder",
"Bekräfta position i appen"
]
}
}
```
## API Endpoints
### Skapa GVIS-mission
```
POST /api/v1/missions/gvis
{
"gvis_id": "TRN-001",
"position": {"lat": 59.3293, "lng": 18.0686},
"radius_m": 50,
"priority": "normal",
"deadline": "2026-07-01T23:59:59Z"
}
Response:
{
"mission_id": "M-123456",
"status": "active",
"estimated_completion": "24h",
"zoomers_notified": 12
}
```
### Hämta GVIS-observation
```
GET /api/v1/observations/{observation_id}
Response:
{
"gvis_id": "TRN-001",
"objekt": "Asfalt",
"bedömning": {
"skick": 23,
"risknivå": 4,
"prioritet": "akut",
"typ_av_skada": "potthål_djup_>5cm",
"omfattning": "punkt_0.5m2"
},
"media": [...],
"zoomer": {"id": "Z-78432", "rating": 4.8},
"ai_konfidens": 0.94,
"human_reviewed": true
}
```
### Batch-analys (Landvex)
```
POST /api/v1/analyze/contradictions
{
"kommun": "Stockholm",
"gvis_filter": ["TRN-001", "TRN-002", "BEL-013"],
"period": "2026-Q2",
" jämför_med": "officiell_rapport_2026"
}
Response:
{
"kontradiktioner": [
{
"typ": "underhåll_vs_verklighet",
"allvarlighet": "hög",
"beskrivning": "Kommunen rapporterar 98% fungerande gatlyktor, GVIS visar 23% trasiga i område X",
"påverkade_objekt": 47,
"rekommenderad_åtgärd": "Omedelbar inspektion av område X"
}
]
}
```
## Dataflöde
```
┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌─────────────┐
│ Zoomer │────▶│ quiXzoom │────▶│ GVIS │────▶│ Landvex │
│ (App) │ │ Backend │ │ Normalizer │ │ Analysis │
└─────────────┘ └──────────────┘ └─────────────┘ └─────────────┘
│ │
▼ ▼
┌──────────────┐ ┌─────────────┐
│ AI-bedomning │ │ Kontradiktion│
│ (Vision API) │ │ Rapport │
└──────────────┘ └─────────────┘
│ │
▼ ▼
┌──────────────┐ ┌─────────────┐
│ Kvalitets- │ │ Kund │
│ kontroll │ │ (Kommun) │
└──────────────┘ └─────────────┘
```
---
*GVIS-quiXzoom Integration v1.0 — 2026-06-26*