Files
boc/landvex-admin-backend/app/routers/life_enterprise.py
T
Bernt aee0f09db8 landvex: Fixar och tester klara för alla komponenter
- Datafabrik: Dockerfile fix, agentorkestrering fungerar
- Vision: Identify-modell, FAISS, OCR alla testade
- API: Alla 7 integrationstester passerade
- Upplösare: Entitetsupplösning verifierad
2026-07-05 06:41:32 +00:00

540 lines
24 KiB
Python

"""
Landvex Intelligence Fusion Engine (LIFE) v5 - Enterprise Platform
5 Strategic Pillars:
1. Trust Layer (tillit och transparens)
2. Governance Layer (styrning och compliance)
3. Simulation Layer (scenarioplanering)
4. Collaboration Layer (samarbete)
5. Reality API (semantiskt API)
Product Definition:
"LIFE är en Reality Intelligence Platform som omvandlar observerbara signaler från den fysiska världen till spårbara evidens, förklarbara analyser och beslutsunderlag genom kontinuerlig fusion av geospatial data, fältobservationer, öppna datakällor och AI."
"""
from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.orm import Session
from typing import List, Optional, Dict, Any
from datetime import datetime
from enum import Enum
from app.database import get_db
from app.core.security import get_current_user
from app.models import User
router = APIRouter(prefix="/life-enterprise", tags=["life_enterprise"])
# ─── PILLAR 1: TRUST LAYER ────────────────────────────────────────────────────
@router.get("/public/trust-layer")
async def get_trust_layer():
"""
Trust Layer - Varje insikt ska kunna besvara tillitsfrågor
"""
return {
"pillar": 1,
"name": "Trust Layer",
"description": "Varje insikt ska kunna besvara frågor om tillförlitlighet",
"trust_questions": {
"sources": {
"question": "Vilka källor ligger bakom?",
"answer_structure": {
"primary_sources": ["Satellite imagery", "Field observation", "Official report"],
"source_count": 5,
"source_reliability": [
{"source": "Satellite", "reliability": 95},
{"source": "Field observation", "reliability": 88},
{"source": "Official report", "reliability": 82},
],
},
},
"freshness": {
"question": "Hur färsk är informationen?",
"answer_structure": {
"observation_date": "2026-07-04",
"data_age_days": 2,
"update_frequency": "Every 5 days (satellite)",
"next_expected_update": "2026-07-09",
"staleness_warning": False,
},
},
"confidence": {
"question": "Hur säker är bedömningen?",
"answer_structure": {
"overall_confidence": 82,
"confidence_level": "high",
"factors": [
{"factor": "Multiple sources agree", "impact": "+15"},
{"factor": "Limited interior visibility", "impact": "-8"},
{"factor": "Recent observation", "impact": "+5"},
],
"confidence_interval": "78-86%",
},
},
"contradictions": {
"question": "Finns det motstridig evidens?",
"answer_structure": {
"contradictions_found": True,
"contradictions": [
{
"source_a": "Official report: 95% complete",
"source_b": "Field observation: 85% complete",
"explanation": "Different measurement methodologies",
},
],
"resolution_status": "Under investigation",
},
},
"change_factors": {
"question": "Vad skulle kunna ändra slutsatsen?",
"answer_structure": {
"sensitivity_factors": [
{"factor": "Interior completion rate", "current_estimate": "60%", "impact": "high"},
{"factor": "Weather conditions", "current": "Rainy season", "impact": "medium"},
{"factor": "Material supply", "current": "On schedule", "impact": "low"},
],
"evidence_needed": [
"Interior photographs from multiple angles",
"Contractor progress report",
"Material delivery receipts",
],
},
},
},
"trust_score": {
"description": "Övergripande tillitsbedömning",
"current_score": 85,
"components": {
"source_quality": 90,
"evidence_strength": 82,
"transparency": 88,
"reproducibility": 92,
"timeliness": 78,
},
},
}
# ─── PILLAR 2: GOVERNANCE LAYER ───────────────────────────────────────────────
@router.get("/public/governance-layer")
async def get_governance_layer():
"""
Governance Layer - Tydliga regler för modeller, data och beslut
"""
return {
"pillar": 2,
"name": "Governance Layer",
"description": "Styrning, compliance och spårbarhet för enterprise-användning",
"components": {
"model_versioning": {
"description": "Versionshantering av AI-modeller",
"current_models": [
{
"name": "Construction Progress Estimator",
"version": "2.3.1",
"deployed": "2026-06-15",
"performance": {"accuracy": 89, "precision": 87, "recall": 91},
"changelog": ["Improved interior detection", "Better material classification"],
},
{
"name": "Risk Predictor",
"version": "1.8.2",
"deployed": "2026-05-20",
"performance": {"accuracy": 76, "precision": 72, "recall": 80},
"changelog": ["Added weather sensitivity", "Improved delay prediction"],
},
],
"rollback_capability": True,
"approval_process": "Human-in-the-loop for major versions",
},
"data_source_documentation": {
"description": "Dokumenterade datakällor",
"sources": [
{
"name": "Sentinel-2",
"provider": "ESA",
"license": "CC BY 4.0",
"update_frequency": "5 days",
"quality_score": 95,
"documentation_url": "https://landvex.com/docs/sources/sentinel-2",
},
{
"name": "QUIXZOOM Network",
"provider": "Landvex Contributors",
"license": "Proprietary",
"update_frequency": "On-demand",
"quality_score": 88,
"documentation_url": "https://landvex.com/docs/sources/quixzoom",
},
],
},
"role_based_access": {
"description": "Rollbaserad åtkomst",
"roles": [
{"role": "Viewer", "permissions": ["Read public data", "View dashboards"]},
{"role": "Analyst", "permissions": ["Query data", "Create reports", "Export results"]},
{"role": "Manager", "permissions": ["Configure alerts", "Approve missions", "Manage users"]},
{"role": "Admin", "permissions": ["Full access", "Model management", "System configuration"]},
],
},
"audit_logs": {
"description": "Oföränderliga revisionsloggar",
"log_entries": 45000000,
"retention": "Permanent",
"tamper_proof": True,
"queryable": True,
},
"change_traceability": {
"description": "Spårbarhet för alla förändringar",
"tracked_changes": [
"Model updates",
"Data source changes",
"Configuration changes",
"User actions",
"API modifications",
],
"traceability_depth": "Full history with diffs",
},
"data_quality_policies": {
"description": "Policyer för datakvalitet",
"policies": [
{"policy": "Minimum 3 sources for high-confidence claims", "enforcement": "automatic"},
{"policy": "All observations must have GPS and timestamp", "enforcement": "automatic"},
{"policy": "Satellite data must be < 30 days old", "enforcement": "warning"},
{"policy": "Contributor reputation > 50 for verified status", "enforcement": "automatic"},
],
},
},
"compliance": {
"standards": ["ISO 27001", "GDPR", "SOC 2", "FedRAMP"],
"certifications": {
"ISO_27001": "Certified 2026-01",
"SOC_2": "In progress",
"GDPR": "Compliant",
},
},
}
# ─── PILLAR 3: SIMULATION LAYER ───────────────────────────────────────────────
@router.get("/public/simulation-layer")
async def get_simulation_layer():
"""
Simulation Layer - Simulera scenarier, inte bara beskriva nuläge
"""
return {
"pillar": 3,
"name": "Simulation Layer",
"description": "Simulera scenarier för planering, inte bara uppföljning",
"capabilities": {
"what_if_analysis": {
"description": "Vad händer om...?",
"examples": [
{
"scenario": "Vad händer om en väg stängs?",
"impact_areas": ["Traffic flow", "Supply chain", "Emergency access", "Economic activity"],
"simulation_result": {
"affected_population": 45000,
"alternative_routes": 3,
"increased_travel_time": "+45 minutes",
"economic_impact_daily": "$125,000",
},
},
{
"scenario": "Hur påverkas logistiken om en bro tas ur drift?",
"impact_areas": ["Transport routes", "Delivery times", "Costs", "Safety"],
"simulation_result": {
"alternative_routes": 2,
"increased_distance": "+85 km",
"additional_cost_daily": "$8,500",
"delay_hours": 3.5,
},
},
{
"scenario": "Hur förändras riskbilden vid extrema väderhändelser?",
"impact_areas": ["Flooding", "Infrastructure damage", "Displacement", "Health"],
"simulation_result": {
"flood_risk_increase": "+300%",
"affected_buildings": 1200,
"evacuation_needed": 5000,
"infrastructure_at_risk": ["Roads", "Power", "Water"],
},
},
{
"scenario": "Hur påverkar alternativa prioriteringar olika indikatorer?",
"impact_areas": ["Budget allocation", "Project timelines", "Outcome metrics"],
"simulation_result": {
"scenario_a": {"focus": "Speed", "completion": "6 months", "cost": "$2.1M", "quality": 75},
"scenario_b": {"focus": "Quality", "completion": "9 months", "cost": "$2.8M", "quality": 92},
"scenario_c": {"focus": "Cost", "completion": "8 months", "cost": "$1.8M", "quality": 70},
},
},
],
},
"scenario_library": {
"description": "Fördefinierade scenarier",
"scenarios": [
{"id": "nat-disaster-flood", "name": "Major flooding", "category": "Natural disaster"},
{"id": "infra-bridge-failure", "name": "Bridge collapse", "category": "Infrastructure"},
{"id": "conflict-escalation", "name": "Regional conflict", "category": "Security"},
{"id": "economic-shock", "name": "Economic downturn", "category": "Economic"},
{"id": "pandemic-outbreak", "name": "Disease outbreak", "category": "Health"},
],
},
"predictive_modeling": {
"description": "Prediktiv modellering för scenarier",
"models": [
{"name": "Infrastructure resilience", "accuracy": 82},
{"name": "Supply chain vulnerability", "accuracy": 78},
{"name": "Population displacement", "accuracy": 75},
{"name": "Economic impact", "accuracy": 71},
],
},
},
"use_cases": [
"Emergency preparedness planning",
"Infrastructure investment prioritization",
"Supply chain contingency planning",
"Climate adaptation strategies",
"Urban development scenarios",
],
}
# ─── PILLAR 4: COLLABORATION LAYER ────────────────────────────────────────────
@router.get("/public/collaboration-layer")
async def get_collaboration_layer():
"""
Collaboration Layer - Flera aktörer arbetar i samma informationsmodell
"""
return {
"pillar": 4,
"name": "Collaboration Layer",
"description": "LIFE som samarbetsplattform, inte bara analysverktyg",
"features": {
"comment_on_observations": {
"description": "Kommentera observationer",
"example": {
"observation_id": "obs-001",
"comments": [
{"user": "Analyst-A", "comment": "This appears consistent with satellite data", "timestamp": "2026-07-04T10:00:00Z"},
{"user": "Manager-B", "comment": "Please verify with additional angles", "timestamp": "2026-07-04T11:00:00Z"},
],
},
},
"request_verification": {
"description": "Begära verifiering",
"workflow": [
"User flags observation for verification",
"System assigns to available contributor",
"Contributor submits verification data",
"System compares and updates confidence",
],
},
"shared_workspaces": {
"description": "Dela arbetsytor",
"workspace_types": [
{"type": "Project team", "members": 5, "data_access": "Project-specific"},
{"type": "Regional hub", "members": 12, "data_access": "Region-wide"},
{"type": "Cross-organizational", "members": 25, "data_access": "Multi-project"},
],
},
"case_management": {
"description": "Hantera ärenden",
"case_types": ["Discrepancy investigation", "Risk assessment", "Mission planning", "Report review"],
"statuses": ["Open", "In progress", "Pending verification", "Resolved", "Closed"],
},
"task_assignment": {
"description": "Tilldela uppgifter",
"task_types": ["Field observation", "Data review", "Analysis", "Report writing", "Verification"],
"assignment_rules": ["Skill matching", "Workload balancing", "Priority scoring", "Geographic proximity"],
},
"action_documentation": {
"description": "Dokumentera åtgärder",
"tracked_actions": [
{"action": "Mission dispatched", "by": "System", "result": "Completed", "impact": "Confidence +5%"},
{"action": "Alert sent", "by": "Manager-A", "result": "Acknowledged", "impact": "Response initiated"},
{"action": "Report published", "by": "Analyst-B", "result": "Distributed", "impact": "Stakeholders informed"},
],
},
},
"collaboration_metrics": {
"active_workspaces": 45,
"daily_comments": 320,
"verification_requests": 45,
"tasks_completed": 180,
"average_resolution_time_hours": 24,
},
}
# ─── PILLAR 5: REALITY API ────────────────────────────────────────────────────
@router.get("/public/reality-api")
async def get_reality_api():
"""
Reality API - Semantiskt API för domänorienterad åtkomst
"""
return {
"pillar": 5,
"name": "Reality API",
"description": "Semantiskt API som är mer domänorienterat än tekniska endpoints",
"api_design": {
"principle": "Resurser representerar verkliga koncept, inte tekniska implementationer",
"resources": {
"/objects": {
"description": "Fysiska objekt i världen",
"methods": ["GET", "POST", "PUT", "DELETE"],
"examples": ["/objects/{id}", "/objects?type=building&location=somalia"],
"returns": "Object with Identity, Geometry, State, Evidence",
},
"/observations": {
"description": "Observationer av objekt",
"methods": ["GET", "POST"],
"examples": ["/observations?object_id=123&date_from=2026-01-01"],
"returns": "List of observations with Evidence Lineage",
},
"/evidence": {
"description": "Evidens som stöder påståenden",
"methods": ["GET", "POST"],
"examples": ["/evidence?claim_id=456"],
"returns": "Evidence items with Confidence scores",
},
"/relationships": {
"description": "Kopplingar mellan objekt",
"methods": ["GET", "POST"],
"examples": ["/relationships?from=obj-123&type=depends_on"],
"returns": "Graph relationships",
},
"/events": {
"description": "Händelser som påverkar objekt",
"methods": ["GET", "POST"],
"examples": ["/events?location=somalia&type=flood"],
"returns": "Events with Impact assessment",
},
"/hypotheses": {
"description": "Genererade hypoteser",
"methods": ["GET", "POST"],
"examples": ["/hypotheses?project_id=proj-001"],
"returns": "Ranked hypotheses with Evidence support",
},
"/predictions": {
"description": "Framtida prognoser",
"methods": ["GET"],
"examples": ["/predictions?object_id=123&horizon=30d"],
"returns": "Predictions with Confidence intervals",
},
"/actions": {
"description": "Rekommenderade åtgärder",
"methods": ["GET", "POST"],
"examples": ["/actions?priority=high&status=pending"],
"returns": "Action items with Expected impact",
},
"/missions": {
"description": "QUIXZOOM-uppdrag",
"methods": ["GET", "POST", "PUT"],
"examples": ["/missions?status=active&region=east-africa"],
"returns": "Mission details with Progress tracking",
},
},
},
"query_language": {
"name": "Reality Query Language (RQL)",
"description": "Deklarativt frågespråk för verklighetsdata",
"examples": [
{
"query": "FIND objects WHERE type = 'school' AND location WITHIN somalia AND state.progress < 90",
"description": "Hitta alla skolor i Somalia med framsteg under 90%",
},
{
"query": "FIND events WHERE type = 'flood' AND date > '2026-01-01' AND impact.severity = 'high'",
"description": "Hitta alla allvarliga översvämningar sedan januari 2026",
},
{
"query": "PREDICT completion FOR object-123 USING historical_trend, weather_forecast",
"description": "Prediktera färdigställande baserat på historik och väder",
},
],
},
"response_format": {
"standard": {
"data": "...",
"meta": {
"confidence": 82,
"sources": ["satellite", "field"],
"timestamp": "2026-07-04T12:00:00Z",
"version": "1.0",
},
"links": {
"self": "/objects/123",
"evidence": "/objects/123/evidence",
"history": "/objects/123/history",
},
},
},
}
# ─── PRODUCT DEFINITION ───────────────────────────────────────────────────────
@router.get("/public/product-definition")
async def get_product_definition():
"""
LIFE Product Definition - Kort och konsekvent definition
"""
return {
"product_name": "Landvex Intelligence Fusion Engine (LIFE)",
"tagline": "Reality Intelligence Platform",
"definition": "LIFE är en Reality Intelligence Platform som omvandlar observerbara signaler från den fysiska världen till spårbara evidens, förklarbara analyser och beslutsunderlag genom kontinuerlig fusion av geospatial data, fältobservationer, öppna datakällor och AI.",
"key_characteristics": [
{
"characteristic": "Reality Intelligence",
"description": "Analyserar den fysiska världen, inte bara text och dokument",
"differentiator": True,
},
{
"characteristic": "Evidence Before Opinion",
"description": "Börjar med observationer, inte slutsatser",
"differentiator": True,
},
{
"characteristic": "Multi-source Fusion",
"description": "Kombinerar satellit, fält, öppna data och AI",
"differentiator": True,
},
{
"characteristic": "Traceability",
"description": "Varje insikt kan spåras tillbaka till sina källor",
"differentiator": True,
},
{
"characteristic": "Explainability",
"description": "Varje analys är förklarbar och granskningsbar",
"differentiator": True,
},
],
"target_users": [
"Development agencies",
"Governments",
"Infrastructure operators",
"Insurance companies",
"Urban planners",
"Environmental organizations",
"Security agencies",
"Researchers",
],
"value_proposition": "Gör den fysiska världen mätbar, förståelig och handlingsbar genom kontinuerlig, evidensbaserad intelligens.",
"usage_contexts": [
"Project monitoring and evaluation",
"Infrastructure management",
"Risk assessment and mitigation",
"Urban planning and development",
"Environmental monitoring",
"Disaster preparedness and response",
"Supply chain optimization",
"Security and threat assessment",
],
}