from datetime import date, datetime, timezone
from decimal import Decimal
from morphik import Morphik
client = Morphik("morphik://your-app:token@api.morphik.ai")
# Rich metadata with multiple types
metadata = {
# Strings
"region": "andes",
"project_code": "hydro-life-2024",
# Dates and datetimes
"fieldwork_date": date(2024, 9, 18),
"monitoring_window_start": datetime(2024, 9, 18, 9, 10, tzinfo=timezone.utc),
"monitoring_window_end": datetime(2024, 9, 18, 17, 35, tzinfo=timezone.utc),
# Numbers
"hazard_score": 41, # Integer
"ph_reading": Decimal("6.3"), # Decimal (precise)
"water_depth_cm": 12.4, # Float
"samples_collected": 18,
# Boolean
"is_priority_site": True,
# Arrays
"tags": ["wildlife", "flood-risk", "community"],
# Nested objects
"sensor_loadout": {
"drone": "Skydio X10",
"camera": "multispectral",
"thermal_gain": 0.43,
},
}
# Ingest document with metadata
doc = client.ingest_text(
content="Laguna Amazonas boardwalk inspection for wetlands buffers...",
filename="laguna-amazonas-field-brief.md",
metadata=metadata,
use_colpali=True,
)
# Wait for completion
doc.wait_for_completion(timeout_seconds=150)
print(f"Ingested: {doc.external_id}")