Adapters connect to external data sources (REST API, PostgreSQL, Storage) to enrich AI answers via RAG. Assign categories to control which widgets use each adapter.
๐ Adapters / Datasources
Name
Type
Categories
Status
Last Test
Actions
Loadingโฆ
Diagnostic
Query runs exactly what a chat request runs against this adapter, and shows the fragments it would contribute โ without asking a model anything.
Resources lists what the adapter can see at all, which is the answer when it indexes nothing.
โ
Each widget is an independent chat interface with its own categories, adapters, and visual config. Use the embed snippet to place widgets on any page.
๐ฌ Chat Widgets
Name
Slug
Categories
RAG
Adapters
MCP
Public
Actions
Loadingโฆ
Conversations
What citizens typed into this widget. Erasing a conversation removes it from every table that holds it โ
the messages, the queries and the telemetry rows behind them โ not just the transcript.
0 keeps them until someone asks for erasure.
Session
Messages
Started
Last
Last message
Outgoing notifications. The platform posts a signed JSON body to your URL when something finishes. Delivery is queued, so a slow receiver never slows down the run that triggered it; a failed delivery is retried on a backoff and every attempt is in the log.
๐ก Webhook endpoints
URL
Events
Signed
Status
Last delivery
Actions
Loadingโฆ
Deliveries
Event
Result
Code
Attempts
When
Error
RAG Profiles control reusable corpus folders, retrieval settings, preferred models, and one-click bootstrap, ingest, and training actions for every RAG-backed assistant.
RAG Profiles
Name
Category
Adapter
Folder
Model
Stack
Actions
Loadingโฆ
RAG Diagnostics
Profile
Corpus
Training
Widgets
Last Activity
Health
Loadingโฆ
๐ง Training Data
Category
Question
Answer
Score
Verified
Actions
Loadingโฆ
๐ฏ Fine-Tune Model
Training History
Date
Model
Samples
Status
Duration
Loadingโฆ
Fine-Tune Jobs (Editable)
Base
Output
Categories
Status
Actions
Loadingโฆ
๐ Knowledge Base
Title
Category
Source
Priority
Active
Actions
Loadingโฆ
๐ค Tenant AI Model Catalog
Per-tenant private catalog stored in tenant_ai_models. API keys are encrypted at rest and never echoed back to the UI.
Resolution order: widget โ RAG profile โ tenant default โ env default โ legacy provider.
Loadingโฆ
+ AI Model
Used by widgets/profiles via ai_model_id. Cannot be changed after creation.
โ๏ธ Legacy provider (fallback)
Used only when no catalog default is set, or when the catalog model fails.
Existing tenants keep working with no changes here.
๐ฑ Seed Default Data Sources
Creates 3 default adapters for this tenant: GIS Node API (localhost:8911/api/v1),
PostgreSQL (gis_test), Storage (H:\Dotwhite\Gis\gisnode\public\storage\).
Also creates default categories. Safe to run multiple times.
๐บ๏ธ MCP Servers
MCP servers expose resources (datasets, documents, layers) and
tools (read/search/query operations) to chat & RAG.
Servers can be in-process samples, your PostgreSQL/PostGIS database, a storage folder,
a REST API, or an external MCP HTTP server.
Loadingโฆ
โ
+ MCP Server
Prefer api_key_env over inline secrets. Saved keys are masked on read.
๐ฅ Users
Name / Username
Role
Status
Last Login
Actions
Loadingโฆ
๐ง Platform Settings
Key/value settings for this tenant. Use type json for complex values. Secrets are masked after save.
Loadingโฆ
๐ Query Analytics
Use the AI Playground to test queries interactively.
Per-Class Confidence Thresholds
Raise the threshold for classes that get confused (e.g. car=0.50, truck=0.55).
Lower threshold = more detections but more false positives.
Overrides tenant default; widget override still wins.
Spatial coverage (optional)
Lets a regulation question answer from geometry โ which zone polygon actually covers a
parcel โ instead of only from the register's parcel reference. Both layers must be exposed
by the same connector. Leave empty and the answer keeps saying coverage was not checked.