06 · AI
Zettlein is an agent, not a chatbot.
Two AI systems: a computer-vision pipeline that turns phone footage into listings, and an agent that advises users and takes actions inside Proassistly.
Capture pipeline
From phone footage to listing-ready media.
Capture app (Quasar) Cloud (media-svc + ai-orchestrator)
┌────────────────────────┐ ┌───────────────────────────────────────────┐
│ 1. On-device guidance │ │ 5. Upload → S3 (raw) │
│ angle · height · │─── HLS ─────▶│ 6. CV: room segmentation + depth │
│ exposure · stability│ │ 7. Floor-plan synthesis (svg + metrics) │
│ 2. Frame QA (reject) │ │ 8. Photo enhancement + best-frame pick │
│ 3. Voice narration │ │ 9. Video walkthrough + virtual tour │
│ 4. Room checklist │ │ 10. QA gate: reject if score < threshold │
└────────────────────────┘ │ 11. Listing draft (KH/EN/ZH descriptions) │
└───────────────────────────────────────────┘On-device guidance
Runs in the capture app
Real-time hints: "Move back", "Raise phone", "Too dark", "Hold still". Rejects low-quality frames before they upload.
Server CV
Segmentation + depth
Room segmentation, plane estimation, depth reconstruction produce a labeled room graph and a floor plan.
Media QA gate
Never publish garbage
Composite score (sharpness, exposure, coverage, tilt). Below threshold → user re-shoots that room, not the whole property.
Advisor agent
Zettlein — the tool-using assistant.
user turn ──▶ router ──▶ mode (seller | buyer | investor | landlord)
│
▼
planner ──▶ tool calls
│ │
│ ├── search_listings(filters)
│ ├── explain_ownership(country, type, buyerNationality)
│ ├── estimate_yield(propertyId)
│ ├── draft_offer(listingId, terms)
│ ├── generate_document(kind, jurisdiction, data)
│ ├── open_escrow(offerId, provider)
│ └── book_service(providerId, stage)
▼
RAG context ─▶ answer + actions (Proassistly writes)
(listings, legal, │
market data) ▼
AiAction row + AuditLogLayers
Safety, i18n and evaluation are non-negotiable.
ai/01
RAG corpus
Grounded answers
Listings, jurisdiction packs, tax notes, developer disclosures and market comps — chunked, embedded, tenant-scoped.
ai/02
Tool layer
Typed contracts
Every tool is a typed RPC to Proassistly with schema, auth scope, dry-run and rollback semantics.
ai/03
Safety
Guardrails + review
PII redaction, jailbreak defense, mandatory human-in-the-loop for contracts > threshold, and irreversible payments.
ai/04
Multilingual
KH / EN / ZH
Khmer-first prompts, transliteration for names/addresses, currency-aware formatting.
ai/05
Model routing
Cost & latency
Small models for classification, mid-tier for chat, frontier for legal drafting; per-tenant budgets.
ai/06
Evaluation
Golden sets
Golden conversation sets per persona + adversarial prompts; regression before every model bump.