Agricultural Decision Intelligence System — transforma dados públicos e da propriedade em respostas acionáveis para o agricultor: quanto vou colher, quanto vou gastar, quanto vou lucrar, qual o risco da safra.
FADA não é um preditor de produtividade isolado. É um sistema de suporte à decisão agrícola que combina serviços de domínio determinísticos (agronomia e finanças), modelos estatísticos/ML com incerteza calibrada, e uma camada de linguagem natural (Claude) para orquestração e explicação.
- Determinístico-first. Cálculo agronômico e financeiro vive em código puro, testável e reprodutível — não dentro de um LLM. O LLM nunca inventa um número; ele chama uma ferramenta.
- Honestidade científica. Toda saída numérica vem com incerteza (intervalo, cenários, e o N de dados que a sustenta). Resposta confiante e errada destrói confiança.
- Data flywheel. O ativo defensável é o dado longitudinal de campo. O produto captura dado limpo do agricultor desde o MVP (inclusive "quanto você colheu?").
- Modular monolith. Um único deploy, bounded contexts com fronteiras limpas (DDD). Extrai-se em serviço só quando a escala exigir — não antes.
Produto completo de apoio à decisão na safra de soja (microrregião Três Passos, Noroeste RS), com frontend Next.js e backend FastAPI:
| O produtor pergunta | Onde responde |
|---|---|
| Quanto vou colher? Qual o risco? | Estimativa da Região (produtividade + intervalo + cenários + riscos) |
| Qual a melhor data para plantar? | Melhor Janela de Plantio (otimização robusta dentro do ZARC) |
| Como está minha safra? | Minha Lavoura (resumo, plano×real, custos, atenção, timeline) |
| Estou no orçamento? Quanto falta investir? | Plano & Orçamento |
| Quanto vou lucrar? Quanto para empatar? | Financeiro (custo/ha, custo/saca, break-even, cenários) |
| Onde devo olhar primeiro? | Decisões (atenção por talhão, por alertas nomeados) |
| Minha fazenda produz acima da média? | Personalização da Fazenda (encolhimento bayesiano) |
| Os intervalos são confiáveis? | Sobre o Modelo (calibração) + selo de confiança |
| (em linguagem natural) | Assistente (roteia para os serviços; nunca inventa número) |
Captura de dados em poucos toques (Registro rápido + presets) alimenta o flywheel; a personalização e a calibração melhoram a cada safra registrada.
MVP — Camada 1 (Inteligência Regional) ponta a ponta com dados reais. Dado município + cultura + safra, retorna produtividade estimada (sc/ha), intervalo, cenários, riscos climáticos, janela de plantio e explicação em linguagem natural.
curl -X POST http://localhost:8000/api/v1/regional-intelligence \
-H 'Content-Type: application/json' \
-d '{"municipality":"Horizontina","uf":"RS","crop":"soja","season":"2026/27"}'Planting Date What-If — simulação de data de plantio e otimização robusta (ZARC):
curl -X POST http://localhost:8000/api/v1/planting-window-optimization \
-H 'Content-Type: application/json' \
-d '{"municipality":"Horizontina","crop":"soja","season":"2026/27","risk_aversion":0.5}'Flywheel de dados + conversacional — captura de ground truth (Farm/Field/ CropCycle/YieldObservation) e um assistente que roteia perguntas para os serviços determinísticos (o LLM não gera números):
curl -X POST http://localhost:8000/api/v1/assistant \
-H 'Content-Type: application/json' \
-d '{"message":"Qual a melhor data para plantar soja em Horizontina?"}'E um frontend (Next.js) em frontend/ consumindo todos os endpoints.
Veja:
- 📚
guia-do-projeto/— GUIA COMPLETO PARA LEIGOS (14 capítulos: o que é, arquitetura, cada arquivo, tecnologias e os porquês) - 🔬
documentacao-cientifica/— DOCUMENTAÇÃO CIENTÍFICA DO DESENVOLVIMENTO (registro de ponta a ponta para relatório: materiais e métodos, cronologia, resultados com números reais, discussão, ADRs e métricas) docs/V1_OVERVIEW.md— visão geral da V1 concluída (o que entrega + backlog V2+)docs/MVP_REGIONAL_INTELLIGENCE.md— a fatia, com resultados reaisdocs/PLANTING_DATE_WHATIF.md— What-If de data de plantiodocs/FLYWHEEL_AND_ASSISTANT.md— captura de ground truth + orchestratordocs/DIGITAL_TWIN_V1.md— timeline de eventos + Cost Enginedocs/ADAPTIVE_INTELLIGENCE.md— personalização por fazenda (encolhimento)docs/CALIBRATION_AND_RELIABILITY.md— os intervalos são honestos?docs/FIELD_AND_INSIGHTS.md— inteligência por talhão + Insight Enginedocs/IN_SEASON_PRODUCT.md— quick capture, plano e orçamentodocs/DECISION_SUPPORT.md— atenção por talhão (sem score mágico)docs/ARCHITECTURE.md— arquitetura e decisões técnicasdocs/ROADMAP.md— MVP / V1 / V2 / V3docs/DOMAIN_MODEL.md— modelo de domínio e ubiquitous languagedocs/adr/— Architecture Decision Recordsexamples/— saídas reais do endpoint
Precisa de dois terminais: backend (porta 8000) e frontend (porta 3000).
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -e ".[ml,dev]"
pytest # 164 testes (domínio + serviço + API)
uvicorn app.main:app --reload --port 8000
# http://localhost:8000/api/v1/health · http://localhost:8000/docsO modelo treinado (data/models/*.json), o dataset (data/features/*.csv) e o
relatório de calibração já vêm versionados — funciona out-of-the-box. Banco padrão:
SQLite (data/fada.db); use FADA_DATABASE_URL para Postgres.
cd frontend
npm install
echo "NEXT_PUBLIC_API_URL=http://localhost:8000" > .env.local # sem barra no fim, sem /api/v1
npm run dev # http://localhost:3000GitHub Codespaces / rede:
localhosté a SUA máquina. Se o frontend roda numa URL encaminhada, aponteNEXT_PUBLIC_API_URLpara a URL encaminhada da porta 8000 (https), deixe a porta 8000 Public, e reinicienpm run dev. CORS é configurável viaFADA_CORS_ORIGINS(padrão*em dev).
Abra http://localhost:3000 → Início. Sem dados? Clique em "Explorar com
fazenda de demonstração" (popula histórico, plano, custos e insights) ou siga o
onboarding guiado (/onboarding): fazenda → talhão → safra → pronto. A seleção
Fazenda · Safra no topo persiste entre as páginas.
cd backend && source .venv/bin/activate
python -m pipelines.build_dataset # IBGE + Open-Meteo/NASA -> data/features
python -m pipelines.train # compara Ridge/RF/XGBoost -> data/models (MLflow)
python -m pipelines.build_planting_grid # grid de data de plantio (fenologia GDD)
python -m pipelines.backtest_calibration # relatório de calibraçãoBackend: FastAPI · Pydantic v2 · SQLAlchemy (SQLite/Postgres) · scikit-learn/XGBoost (offline) · Claude opcional (orquestração/explicação — nunca gera número). Frontend: Next.js (App Router) · React · Tailwind · TanStack Query · Recharts.