使用说明
Norkart GeoMCP - Prototype
En prototype av en intelligent GIS-agent som kombinerer Azure OpenAI med Model Context Protocol (MCP) for automatiserte geografiske analyser.
Oversikt
Prototypen demonstrerer en AI-drevet GIS-assistent som bruker ulike Azure modeller sammen med spesialiserte geospatial-verktøy gjennom MCP-protokollen. Agenten forstår naturlig språk på norsk og engelsk, og kan utføre komplekse GIS-operasjoner inkludert koordinattransformasjoner, buffere, romlige analyser, generering av webkart og mer.
Hovedfunksjoner
- Naturlig språk for GIS-operasjoner: Beskriv analysebehovene dine på norsk eller engelsk
- CRS-intelligens: Automatisk deteksjon og håndtering av norske koordinatsystemer (EU89 UTM-soner)
- Smartfeilretting: Selvkorrigerende agent med retry-logikk og kontekstbevisste hint
- Webkart-generering: Automatisk laging av Leaflet-baserte interaktive kart med korrekte koordinattransformasjoner
- Ressurssporing: Holder styr på filer, geometrier og koordinatsystemer på tvers av operasjoner
- Skjemavalidering: Forhåndsvaliderer verktøykall før kjøring for å forhindre vanlige feil
Arkitektur
- Backend: Python-basert MCP-server som inneholder geospatial-verktøy (GeoPandas, Shapely, PyProj)
- Agent: LangChain-basert smart agent med Azure modeller
- Protokoll: MCP (Model Context Protocol) for verktøyintegrasjon
- Frontend: (Planlagt) Next.js/React-grensesnitt med Leaflet-kart
Kjernefiler
prototype_agent.py # Hovedimplementasjon av agenten
json/mcp_tools_documentation.json # Komplett MCP-verktøykatalog
Nøkkelklasser
SmartAgent- Selvkorrigerende agent med CRS-forståelseResourceTracker- Sporer filer, geometrier og koordinatsystemerToolSchemaValidator- Validerer verktøyparametere før kjøringInputPreprocessor- Ekstraherer CRS og koordinater fra naturlig språk
Eksempelbruk
# Naturlige språkforespørsler agenten kan håndtere:
"Lag en 500m buffer rundt punkt Nord: 6456800, Øst: 439311 i EU89 UTM-sone 32 og vis den på et webkart"
# Agenten:
# 1. Detekterer koordinatsystem (EPSG:25832) automatisk
# 2. Oppretter buffergeometrien
# 3. Reprojiserer til WGS84 for webkartvisning
# 4. Genererer et interaktivt Leaflet-kart
Tekniske høydepunkter
- CRS-bevisst reprojesjon: Håndterer automatisk transformasjoner mellom norske UTM-soner og WGS84
- Verktøykallvalidering: Forhindrer GeoJSON/WKT-forvirring, manglende parametere og typefeil
- Kontekstbevaring: Opprettholder filstier og CRS-informasjon på tvers av flertrinns arbeidsflyter
- Hastighetsbegrensning: Innebygd håndtering av Azure API-rate limits
- Samtalehukommelse: Vedvarende kontekst mellom spørringer
Prototypestatus
⚠️ Dette er en utviklingsprototype. Kjente begrensninger:
- Begrenset feilhåndtering for edge cases
- Mock-data for testing
- Ingen brukerautentisering/multi-tenancy
- Enkeltbruker-terminalgrensesnitt
Teknologistakk
Backend:
- Python 3.11+
- LangChain + LangChain-MCP-Adapters
- Azure OpenAI (GPT-4)
- GeoPandas, Shapely, PyProj
- FastMCP (MCP-server)
Planlagt Frontend:
- Next.js
- React
- Tailwind CSS
- shadcn/ui + magic-ui-komponenter
- React Leaflet for kartvisning
Miljøoppsett
# Nødvendige miljøvariabler (.env)
AZURE_OPENAI_API_KEY=din_nøkkel_her
AZURE_OPENAI_ENDPOINT=https://din-ressurs.openai.azure.com/
AZURE_OPENAI_API_VERSION=modell_versjon
AZURE_OPENAI_DEPLOYMENT_NAME=ditt_deployment_navn
Installasjon
pip install -r requirements.txt
Kjøre prototypen
# Start MCP-serveren (separat terminal)
# Deretter kjør agenten:
python prototype_agent.py
Eksempelkommandoer
# I agentgrensesnittet:
You: Lag en buffer på 500 meter rundt punkt Nord: 6456800, Øst: 439311 i EU89 UTM-sone 32
You: files # Vis sporte filer
You: clear # Nullstill samtalehistorikk
You: exit # Avslutt
Prosjektmål
Bygge en "KU-Assistent" for gjennomføring av konsekvensutredninger (KU) ved å kombinere AI/KI med en GeoMCP og GIS-funksjoner.
Organisasjon
Norkart
Merk: Dette er en utviklingsprototype :)