Algorithms / methods
We compared direct single-pass generation against retrieval plus staged orchestration. Single-pass generation is simpler and
faster to implement, but it provides weaker auditability when individual sections need validation or correction.
Retrieval with staged orchestration gives stronger source grounding and clearer stage-level checkpoints, which is more
suitable for high-stakes humanitarian reporting.
Programming language
We evaluated Python-only, TypeScript-only, and mixed-stack approaches. A single-language stack simplifies onboarding but
constrains either AI/data tooling or frontend dashboard development.
The mixed stack was preferred because Python supports ingestion and orchestration workflows, while TypeScript/React supports
robust interactive client delivery.
Frameworks and libraries
We compared a monolithic backend service with Django API plus separate orchestration services. A monolith can reduce
deployment complexity but tightly couples API contracts and generation internals.
Splitting delivery and orchestration concerns improves maintainability and testing boundaries, and allows safer incremental
updates to the generation pipeline.
APIs and external services
We compared single-source retrieval with a multi-source strategy using GDELT, HDX HAPI, ReliefWeb, and Copernicus.
Single-source retrieval is easier to monitor, but it is vulnerable to missing coverage or temporary outages.
Multi-source retrieval improves evidence coverage, supports cross-source triangulation, and is more resilient when one feed
is incomplete.
Model and runtime strategy
We compared parametric-only generation against retrieval-grounded generation with explicit confidence and gap communication.
Parametric-only generation reduces orchestration complexity but weakens source traceability for high-stakes decision support.
Retrieval-grounded generation with confidence/gap reporting was selected because it improves factual grounding and makes
uncertainty visible to users.
Client context strategy
We compared a single analyst-focused interface against role-separated route groups for analyst, operations, and admin users.
A single interface is simpler to maintain but increases information-density and control-overload risks.
Role-separated route groups were selected to align data density and controls with each user's responsibilities.
Consolidated Technology Conclusion
The final technical direction combines retrieval plus staged orchestration for source grounding and stage-level validation,
a mixed implementation stack with Python for ingestion/orchestration and TypeScript/React for interactive client delivery,
and a service structure that separates the Django API from orchestration services to maintain clear boundaries.
The selected data strategy uses multi-source retrieval across GDELT, HDX HAPI, ReliefWeb, and Copernicus for broader
coverage and resilience. At runtime, reports are generated with retrieval grounding and explicit confidence/evidence-gap
communication, and the delivery model remains role-specific across analyst, operations, and admin routes.