Technisch ontwerp vergunningzoeker met Druppie SDK
This commit is contained in:
parent
b21cba4bc2
commit
ec249bb172
|
|
@ -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
|
||||||
Loading…
Reference in New Issue