Technisch ontwerp vergunningzoeker met Druppie SDK

This commit is contained in:
Druppie Agent 2026-06-11 11:42:51 +00:00
parent 7ccfa36b15
commit c220626acc
1 changed files with 63 additions and 0 deletions

63
docs/technical-design.md Normal file
View File

@ -0,0 +1,63 @@
# Technisch Ontwerp: Vergunningzoeker
## Stack
- Backend: Python Flask (project template)
- Frontend: React met Vite
- Database: PostgreSQL
- AI: Druppie platform modules via SDK
## Druppie Modules
De app gebruikt de Druppie SDK (`druppie_sdk`) om platformmodules aan te roepen.
Geen directe API-keys of externe provider-calls in de app.
| Module | Tool | Gebruik |
|--------|------|---------|
| vision | ocr | Tekst extraheren uit gescande vergunningdocumenten (PDF/afbeelding) |
| llm | chat | Classificatie van vergunningtype op basis van geëxtraheerde tekst |
Gebruik:
```python
from druppie_sdk import DruppieClient
druppie = DruppieClient()
# OCR op geüpload document
ocr_result = druppie.call("vision", "ocr", {"image_source": image_url})
extracted_text = ocr_result["text"]
# Classificatie van vergunningtype
classify_result = druppie.call("llm", "chat", {
"prompt": f"Classificeer dit vergunningdocument...\n\n{extracted_text}",
"system": "Je bent een specialist in watervergunningen."
})
```
## Componenten
- UploadHandler: verwerkt document uploads, slaat op in DB
- OCRProcessor: roept druppie vision/ocr aan voor tekstextractie
- Classifier: roept druppie llm/chat aan voor classificatie
- PermitStore: PostgreSQL repository voor vergunningmetadata
- SearchHandler: zoekt in opgeslagen metadata
## Datamodel
```
Permit:
id: UUID (PK)
permit_number: String
applicant_name: String
permit_type: String (geclassificeerd door LLM)
extracted_text: Text (OCR output)
source_file: String (bestandsnaam)
upload_date: DateTime
created_at: DateTime
```
## API Endpoints
- POST /api/permits/upload — upload document, start OCR + classificatie
- GET /api/permits — lijst van alle vergunningen met metadata
- GET /api/permits/:id — details van een vergunning
- GET /api/permits/search?q=term — zoek in metadata
## Belangrijk
- GEEN hardcoded API keys in de app
- GEEN openai package — gebruik druppie_sdk
- DRUPPIE_URL wordt automatisch geïnjecteerd bij deploy