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
This commit is contained in:
Bernt
2026-07-05 06:41:32 +00:00
parent f4f853d94b
commit aee0f09db8
19583 changed files with 1450867 additions and 1153 deletions
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bridge Inspection France — Landvex</title>
<meta name="description" content="Bridge inspection services in France. AI-powered structural assessment for infrastructure.">
<link rel="canonical" href="https://landvex.com/bridge-inspection/france/">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f7; color: #1d1d1f; line-height: 1.6; }
.header { background: #fff; border-bottom: 1px solid #d2d2d7; padding: 16px 24px; display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 24px; font-weight: 700; color: #0071e3; text-decoration: none; }
.hero { background: #fff; padding: 60px 24px; text-align: center; }
.hero h1 { font-size: 36px; font-weight: 700; margin-bottom: 16px; }
.hero p { font-size: 18px; color: #86868b; max-width: 600px; margin: 0 auto; }
.content { padding: 48px 24px; max-width: 800px; margin: 0 auto; }
.content h2 { font-size: 24px; margin-bottom: 16px; }
.content p { color: #86868b; margin-bottom: 16px; }
.footer { background: #1d1d1f; color: #fff; padding: 40px 24px; text-align: center; margin-top: 48px; }
@media (max-width: 640px) {
.hero h1 { font-size: 2rem !important; }
.hero p { font-size: 1rem !important; }
.card { padding: 1.5rem !important; }
.grid { grid-template-columns: 1fr !important; }
.btn { padding: 0.75rem 1.5rem !important; font-size: 1rem !important; }
}
</style>
</head>
<body>
<header class="header">
<a href="/" class="logo">Landvex</a>
</header>
<section class="hero">
<h1>Bridge Inspection France</h1>
<p>AI-powered bridge assessment services in France.</p>
</section>
<section class="content">
<h2>Services</h2>
<p>• Visual defect detection<br>
• Structural load assessment<br>
• Environmental impact monitoring<br>
• Maintenance priority scoring</p>
<h2>Contact</h2>
<p>Reach out to discuss your bridge inspection requirements in France.</p>
</section>
<footer class="footer">
<p>© 2026 Landvex. All rights reserved.</p>
</footer>
</body>
</html>
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bridge Inspection Germany — Landvex</title>
<meta name="description" content="Bridge inspection services in Germany. AI-powered structural assessment for infrastructure.">
<link rel="canonical" href="https://landvex.com/bridge-inspection/germany/">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f7; color: #1d1d1f; line-height: 1.6; }
.header { background: #fff; border-bottom: 1px solid #d2d2d7; padding: 16px 24px; display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 24px; font-weight: 700; color: #0071e3; text-decoration: none; }
.hero { background: #fff; padding: 60px 24px; text-align: center; }
.hero h1 { font-size: 36px; font-weight: 700; margin-bottom: 16px; }
.hero p { font-size: 18px; color: #86868b; max-width: 600px; margin: 0 auto; }
.content { padding: 48px 24px; max-width: 800px; margin: 0 auto; }
.content h2 { font-size: 24px; margin-bottom: 16px; }
.content p { color: #86868b; margin-bottom: 16px; }
.footer { background: #1d1d1f; color: #fff; padding: 40px 24px; text-align: center; margin-top: 48px; }
@media (max-width: 640px) {
.hero h1 { font-size: 2rem !important; }
.hero p { font-size: 1rem !important; }
.card { padding: 1.5rem !important; }
.grid { grid-template-columns: 1fr !important; }
.btn { padding: 0.75rem 1.5rem !important; font-size: 1rem !important; }
}
</style>
</head>
<body>
<header class="header">
<a href="/" class="logo">Landvex</a>
</header>
<section class="hero">
<h1>Bridge Inspection Germany</h1>
<p>AI-powered bridge assessment services in Germany.</p>
</section>
<section class="content">
<h2>Services</h2>
<p>• Visual defect detection<br>
• Structural load assessment<br>
• Environmental impact monitoring<br>
• Maintenance priority scoring</p>
<h2>Contact</h2>
<p>Reach out to discuss your bridge inspection requirements in Germany.</p>
</section>
<footer class="footer">
<p>© 2026 Landvex. All rights reserved.</p>
</footer>
</body>
</html>
+107
View File
@@ -0,0 +1,107 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bridge Inspection — Landvex</title>
<meta name="description" content="AI-powered bridge inspection with visual geolocation. Detect cracks, corrosion, and structural defects from crowdsourced imagery.">
<link rel="canonical" href="https://landvex.com/bridge-inspection/">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f7; color: #1d1d1f; line-height: 1.6; }
.header { background: #fff; border-bottom: 1px solid #d2d2d7; padding: 16px 24px; display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 24px; font-weight: 700; color: #0071e3; text-decoration: none; }
.nav { display: flex; gap: 24px; }
.nav a { color: #1d1d1f; text-decoration: none; font-size: 14px; font-weight: 500; }
.nav a:hover { color: #0071e3; }
.hero { background: #fff; padding: 80px 24px; text-align: center; }
.hero h1 { font-size: 48px; font-weight: 700; margin-bottom: 16px; }
.hero p { font-size: 20px; color: #86868b; max-width: 600px; margin: 0 auto 32px; }
.btn { display: inline-block; padding: 14px 28px; border-radius: 8px; font-size: 16px; font-weight: 500; text-decoration: none; transition: all 0.2s; }
.btn-primary { background: #0071e3; color: #fff; }
.btn-primary:hover { background: #0077ed; }
.features { padding: 64px 24px; max-width: 1200px; margin: 0 auto; }
.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px; margin-top: 48px; }
.feature { background: #fff; padding: 32px; border-radius: 16px; }
.feature h3 { font-size: 20px; font-weight: 600; margin-bottom: 12px; }
.feature p { color: #86868b; }
.countries { padding: 64px 24px; background: #fff; }
.countries-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; max-width: 1200px; margin: 32px auto 0; }
.country { padding: 20px; border: 1px solid #d2d2d7; border-radius: 12px; text-align: center; }
.country a { color: #0071e3; text-decoration: none; font-weight: 500; }
.footer { background: #1d1d1f; color: #fff; padding: 40px 24px; text-align: center; }
@media (max-width: 640px) {
.hero h1 { font-size: 2rem !important; }
.hero p { font-size: 1rem !important; }
.card { padding: 1.5rem !important; }
.grid { grid-template-columns: 1fr !important; }
.btn { padding: 0.75rem 1.5rem !important; font-size: 1rem !important; }
}
</style>
</head>
<body>
<nav aria-label="breadcrumb" style="padding: 10px 20px; color: rgba(235,235,245,0.6); font-size: 14px;">
<a href="/" style="color: #007AFF; text-decoration: none;">Home</a> / <span>bridge-inspection</span>
</nav>
<header class="header">
<a href="/" class="logo">Landvex</a>
<nav class="nav">
<a href="/product.html">Product</a>
<a href="/cities/">Cities</a>
<a href="/api-docs/">API</a>
<a href="/contact/">Contact</a>
</nav>
</header>
<section class="hero">
<h1>Bridge Inspection</h1>
<p>AI-powered structural assessment using crowdsourced imagery and visual geolocation. Detect defects before they become disasters.</p>
<a href="/contact/" class="btn btn-primary">Request Demo</a>
</section>
<section class="features">
<h2 style="text-align: center; font-size: 32px;">How It Works</h2>
<div class="features-grid">
<div class="feature">
<h3><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#0066FF" stroke-width="2"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg> Mission Deployment</h3>
<p>Deploy inspection missions to qualified Zoomers near your infrastructure assets.</p>
</div>
<div class="feature">
<h3>📸 Visual Evidence</h3>
<p>Receive geolocated, timestamped imagery with AI-extracted structural features.</p>
</div>
<div class="feature">
<h3>🔍 Defect Detection</h3>
<p>Automatic identification of cracks, corrosion, deformation, and wear patterns.</p>
</div>
<div class="feature">
<h3><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#0066FF" stroke-width="2"><path d="M18 20V10"/><path d="M12 20V4"/><path d="M6 20v-6"/></svg> Condition Scoring</h3>
<p>Standardized 1-5 condition ratings with confidence intervals and trend analysis.</p>
</div>
<div class="feature">
<h3><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#f59e0b" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg> Alert System</h3>
<p>Real-time notifications when critical defects are detected or conditions worsen.</p>
</div>
<div class="feature">
<h3>📈 Predictive Analytics</h3>
<p>Forecast degradation timelines and optimize maintenance scheduling.</p>
</div>
</div>
</section>
<section class="countries">
<h2 style="text-align: center; font-size: 32px;">Available In</h2>
<div class="countries-grid">
<div class="country"><a href="/bridge-inspection/sweden/">🇸🇪 Sweden</a></div>
<div class="country"><a href="/bridge-inspection/germany/">🇩🇪 Germany</a></div>
<div class="country"><a href="/bridge-inspection/france/">🇫🇷 France</a></div>
<div class="country"><a href="/bridge-inspection/uk/">🇬🇧 United Kingdom</a></div>
<div class="country"><a href="/bridge-inspection/netherlands/">🇳🇱 Netherlands</a></div>
</div>
</section>
<footer class="footer">
<p>© 2026 Landvex. All rights reserved.</p>
</footer>
</body>
</html>
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bridge Inspection Netherlands — Landvex</title>
<meta name="description" content="Bridge inspection services in Netherlands. AI-powered structural assessment for infrastructure.">
<link rel="canonical" href="https://landvex.com/bridge-inspection/netherlands/">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f7; color: #1d1d1f; line-height: 1.6; }
.header { background: #fff; border-bottom: 1px solid #d2d2d7; padding: 16px 24px; display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 24px; font-weight: 700; color: #0071e3; text-decoration: none; }
.hero { background: #fff; padding: 60px 24px; text-align: center; }
.hero h1 { font-size: 36px; font-weight: 700; margin-bottom: 16px; }
.hero p { font-size: 18px; color: #86868b; max-width: 600px; margin: 0 auto; }
.content { padding: 48px 24px; max-width: 800px; margin: 0 auto; }
.content h2 { font-size: 24px; margin-bottom: 16px; }
.content p { color: #86868b; margin-bottom: 16px; }
.footer { background: #1d1d1f; color: #fff; padding: 40px 24px; text-align: center; margin-top: 48px; }
@media (max-width: 640px) {
.hero h1 { font-size: 2rem !important; }
.hero p { font-size: 1rem !important; }
.card { padding: 1.5rem !important; }
.grid { grid-template-columns: 1fr !important; }
.btn { padding: 0.75rem 1.5rem !important; font-size: 1rem !important; }
}
</style>
</head>
<body>
<header class="header">
<a href="/" class="logo">Landvex</a>
</header>
<section class="hero">
<h1>Bridge Inspection Netherlands</h1>
<p>AI-powered bridge assessment services in Netherlands.</p>
</section>
<section class="content">
<h2>Services</h2>
<p>• Visual defect detection<br>
• Structural load assessment<br>
• Environmental impact monitoring<br>
• Maintenance priority scoring</p>
<h2>Contact</h2>
<p>Reach out to discuss your bridge inspection requirements in Netherlands.</p>
</section>
<footer class="footer">
<p>© 2026 Landvex. All rights reserved.</p>
</footer>
</body>
</html>
@@ -0,0 +1,78 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bridge Inspection Sweden — Landvex</title>
<meta name="description" content="Bridge inspection services in Sweden. AI-powered structural assessment for Swedish infrastructure.">
<link rel="canonical" href="https://landvex.com/bridge-inspection/sweden/">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f7; color: #1d1d1f; line-height: 1.6; }
.header { background: #fff; border-bottom: 1px solid #d2d2d7; padding: 16px 24px; display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 24px; font-weight: 700; color: #0071e3; text-decoration: none; }
.hero { background: #fff; padding: 60px 24px; text-align: center; }
.hero h1 { font-size: 36px; font-weight: 700; margin-bottom: 16px; }
.hero p { font-size: 18px; color: #86868b; max-width: 600px; margin: 0 auto; }
.content { padding: 48px 24px; max-width: 800px; margin: 0 auto; }
.content h2 { font-size: 24px; margin-bottom: 16px; }
.content p { color: #86868b; margin-bottom: 16px; }
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 32px 0; }
.stat { background: #fff; padding: 24px; border-radius: 12px; text-align: center; }
.stat-value { font-size: 32px; font-weight: 700; color: #0071e3; }
.stat-label { font-size: 14px; color: #86868b; margin-top: 8px; }
.footer { background: #1d1d1f; color: #fff; padding: 40px 24px; text-align: center; margin-top: 48px; }
@media (max-width: 640px) {
.hero h1 { font-size: 2rem !important; }
.hero p { font-size: 1rem !important; }
.card { padding: 1.5rem !important; }
.grid { grid-template-columns: 1fr !important; }
.btn { padding: 0.75rem 1.5rem !important; font-size: 1rem !important; }
}
</style>
</head>
<body>
<header class="header">
<a href="/" class="logo">Landvex</a>
</header>
<section class="hero">
<h1>🇸🇪 Bridge Inspection Sweden</h1>
<p>Comprehensive bridge assessment services across Sweden using AI and crowdsourced field data.</p>
</section>
<section class="content">
<div class="stats">
<div class="stat">
<div class="stat-value">34,000+</div>
<div class="stat-label">Bridges in Sweden</div>
</div>
<div class="stat">
<div class="stat-value">290</div>
<div class="stat-label">Municipalities</div>
</div>
<div class="stat">
<div class="stat-value">24/7</div>
<div class="stat-label">Monitoring</div>
</div>
</div>
<h2>Swedish Infrastructure Intelligence</h2>
<p>Landvex provides continuous structural monitoring for Sweden's extensive bridge network. From major highway bridges to small rural crossings, our AI-powered platform delivers standardized condition assessments.</p>
<h2>Key Capabilities</h2>
<p>• Visual defect detection (cracks, corrosion, deformation)<br>
• Structural load assessment<br>
• Environmental impact monitoring<br>
• Maintenance priority scoring<br>
• Regulatory compliance reporting</p>
<h2>Get Started</h2>
<p>Contact us to discuss your bridge inspection requirements in Sweden.</p>
</section>
<footer class="footer">
<p>© 2026 Landvex. All rights reserved.</p>
</footer>
</body>
</html>
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bridge Inspection United Kingdom — Landvex</title>
<meta name="description" content="Bridge inspection services in United Kingdom. AI-powered structural assessment for infrastructure.">
<link rel="canonical" href="https://landvex.com/bridge-inspection/uk/">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f7; color: #1d1d1f; line-height: 1.6; }
.header { background: #fff; border-bottom: 1px solid #d2d2d7; padding: 16px 24px; display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 24px; font-weight: 700; color: #0071e3; text-decoration: none; }
.hero { background: #fff; padding: 60px 24px; text-align: center; }
.hero h1 { font-size: 36px; font-weight: 700; margin-bottom: 16px; }
.hero p { font-size: 18px; color: #86868b; max-width: 600px; margin: 0 auto; }
.content { padding: 48px 24px; max-width: 800px; margin: 0 auto; }
.content h2 { font-size: 24px; margin-bottom: 16px; }
.content p { color: #86868b; margin-bottom: 16px; }
.footer { background: #1d1d1f; color: #fff; padding: 40px 24px; text-align: center; margin-top: 48px; }
@media (max-width: 640px) {
.hero h1 { font-size: 2rem !important; }
.hero p { font-size: 1rem !important; }
.card { padding: 1.5rem !important; }
.grid { grid-template-columns: 1fr !important; }
.btn { padding: 0.75rem 1.5rem !important; font-size: 1rem !important; }
}
</style>
</head>
<body>
<header class="header">
<a href="/" class="logo">Landvex</a>
</header>
<section class="hero">
<h1>Bridge Inspection United Kingdom</h1>
<p>AI-powered bridge assessment services in United Kingdom.</p>
</section>
<section class="content">
<h2>Services</h2>
<p>• Visual defect detection<br>
• Structural load assessment<br>
• Environmental impact monitoring<br>
• Maintenance priority scoring</p>
<h2>Contact</h2>
<p>Reach out to discuss your bridge inspection requirements in United Kingdom.</p>
</section>
<footer class="footer">
<p>© 2026 Landvex. All rights reserved.</p>
</footer>
</body>
</html>