landvex: IOL v3 + Identify API + Neo4j-graf + byggpipeline
- FastAPI Identify API (port 8081) - Neo4j propertygraf (64 noder, 80 kanter) - Ingest-pipeline (Python) - Byggscript + integrationstester - Docker Compose setup
This commit is contained in:
Executable
+59
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
echo " Landvex IOL — Bygg & Driftsättning"
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
|
||||
# ─── Konfiguration ─────────────────────────────────────────
|
||||
DATA_DIR="${PWD}/10-data"
|
||||
DB_DIR="${PWD}/db"
|
||||
API_DIR="${PWD}/api"
|
||||
SCRIPT_DIR="${PWD}/scripts"
|
||||
|
||||
# ─── Steg 1: Validera indata ───────────────────────────────
|
||||
echo ""
|
||||
echo "▶ Steg 1: Validerar indata..."
|
||||
python3 "${SCRIPT_DIR}/export_csv.py"
|
||||
python3 "${DB_DIR}/load_to_neo4j.py"
|
||||
|
||||
# ─── Steg 2: Bygg Docker-image ─────────────────────────────
|
||||
echo ""
|
||||
echo "▶ Steg 2: Bygger API-container..."
|
||||
docker compose build api
|
||||
|
||||
# ─── Steg 3: Starta tjänster ───────────────────────────────
|
||||
echo ""
|
||||
echo "▶ Steg 3: Startar API..."
|
||||
docker compose up -d api
|
||||
|
||||
# ─── Steg 4: Health check ──────────────────────────────────
|
||||
echo ""
|
||||
echo "▶ Steg 4: Health check..."
|
||||
sleep 2
|
||||
HEALTH=$(curl -s http://localhost:8081/health)
|
||||
POSTER=$(echo "$HEALTH" | python3 -c "import sys,json; print(json.load(sys.stdin)['poster'])")
|
||||
KANTER=$(echo "$HEALTH" | python3 -c "import sys,json; print(json.load(sys.stdin)['kanter'])")
|
||||
echo " ✅ API: ${POSTER} poster, ${KANTER} kanter"
|
||||
|
||||
# ─── Steg 5: Snabbtest ─────────────────────────────────────
|
||||
echo ""
|
||||
echo "▶ Steg 5: Snabbtest av endpoints..."
|
||||
curl -s 'http://localhost:8081/v0/search?q=belysning' | python3 -m json.tool | grep '"antal"'
|
||||
curl -s 'http://localhost:8081/v0/objects/LVX-TRP-0102' | python3 -m json.tool | grep '"lvx_id"'
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
echo " ✅ Landvex IOL är driftsatt!"
|
||||
echo ""
|
||||
echo " API: http://localhost:8081"
|
||||
echo " Health: http://localhost:8081/health"
|
||||
echo " Neo4j: bolt://localhost:7687"
|
||||
echo ""
|
||||
echo " Endpoints:"
|
||||
echo " POST /v0/identify — Bild → kandidater"
|
||||
echo " GET /v0/objects/{id} — Hämta objekt"
|
||||
echo " GET /v0/search?q=... — Fritextsök"
|
||||
echo " GET /v0/standards/{b}/objects — Standard → objekt"
|
||||
echo " POST /v0/feedback — Skapa bounty"
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
Reference in New Issue
Block a user