Julia-Amadio commited on
Commit
3ac2966
·
1 Parent(s): a9c332e

Solução mais elegante para o corpo de resposta.

Browse files
Files changed (2) hide show
  1. doencas.json +11 -0
  2. main.py +7 -2
doencas.json CHANGED
@@ -1,5 +1,6 @@
1
  {
2
  "Oidio": {
 
3
  "descricao": "Descrição aqui.",
4
  "sintomas": [
5
  "Sintoma 1.",
@@ -9,6 +10,7 @@
9
  "tratamento": "Tratamento aqui."
10
  },
11
  "Mancha Parda": {
 
12
  "descricao": "Descrição aqui.",
13
  "sintomas": [
14
  "Sintoma 1.",
@@ -18,6 +20,7 @@
18
  "tratamento": "Tratamento aqui."
19
  },
20
  "Ferrugem": {
 
21
  "descricao": "Causada pelo fungo Phakopsora pachyrhizi, é uma das doenças mais severas da soja...",
22
  "sintomas": [
23
  "Pequenas pústulas (bolinhas) na parte de baixo da folha.",
@@ -27,6 +30,7 @@
27
  "tratamento": "Aplicação de fungicidas sistêmicos e de contato. Rotacionar culturas e usar variedades resistentes."
28
  },
29
  "Mosaico Amarelo": {
 
30
  "descricao": "Descrição aqui.",
31
  "sintomas": [
32
  "Sintoma 1.",
@@ -36,6 +40,7 @@
36
  "tratamento": "Tratamento aqui."
37
  },
38
  "Virus do Mosaico": {
 
39
  "descricao": "Causado pelo Soybean Mosaic Virus (SMV), transmitido por pulgões.",
40
  "sintomas": [
41
  "Folhas novas ficam enrugadas e com padrões de verde claro e escuro (mosaico).",
@@ -44,6 +49,7 @@
44
  "tratamento": "Não há cura. Use sementes sadias e controle os pulgões (vetores) com inseticidas."
45
  },
46
  "Mancha bacteriana": {
 
47
  "descricao": "Descrição aqui.",
48
  "sintomas": [
49
  "Sintoma 1.",
@@ -53,6 +59,7 @@
53
  "tratamento": "Tratamento aqui."
54
  },
55
  "Podridão do Sul": {
 
56
  "descricao": "Descrição aqui.",
57
  "sintomas": [
58
  "Sintoma 1.",
@@ -62,6 +69,7 @@
62
  "tratamento": "Tratamento aqui."
63
  },
64
  "Queima das folhas por cercosporea": {
 
65
  "descricao": "Descrição aqui.",
66
  "sintomas": [
67
  "Sintoma 1.",
@@ -71,6 +79,7 @@
71
  "tratamento": "Tratamento aqui."
72
  },
73
  "Sindome da Morte Subita": {
 
74
  "descricao": "Descrição aqui.",
75
  "sintomas": [
76
  "Sintoma 1.",
@@ -80,12 +89,14 @@
80
  "tratamento": "Tratamento aqui."
81
  },
82
  "Saudavel": {
 
83
  "descricao": "A folha não apresenta sinais visíveis de patógenos.",
84
  "sintomas": ["Nenhum."],
85
  "tratamento": "Continuar monitoramento e boas práticas agrícolas."
86
  },
87
 
88
  "Lagarta": {
 
89
  "descricao": "Diversas espécies de lagartas, como a lagarta-da-soja (Anticarsia gemmatalis) ou a falsa-medideira (Chrysodeixis includens), atacam as lavouras de soja, causando desfolha e redução da produtividade.",
90
  "sintomas": [
91
  "Folhas comidas ou roídas, muitas vezes começando pelas bordas.",
 
1
  {
2
  "Oidio": {
3
+ "nome": "Oídio",
4
  "descricao": "Descrição aqui.",
5
  "sintomas": [
6
  "Sintoma 1.",
 
10
  "tratamento": "Tratamento aqui."
11
  },
12
  "Mancha Parda": {
13
+ "nome": "Mancha Parda",
14
  "descricao": "Descrição aqui.",
15
  "sintomas": [
16
  "Sintoma 1.",
 
20
  "tratamento": "Tratamento aqui."
21
  },
22
  "Ferrugem": {
23
+ "nome": "Ferrugem Asiática",
24
  "descricao": "Causada pelo fungo Phakopsora pachyrhizi, é uma das doenças mais severas da soja...",
25
  "sintomas": [
26
  "Pequenas pústulas (bolinhas) na parte de baixo da folha.",
 
30
  "tratamento": "Aplicação de fungicidas sistêmicos e de contato. Rotacionar culturas e usar variedades resistentes."
31
  },
32
  "Mosaico Amarelo": {
33
+ "nome": "Mosaico Amarelo",
34
  "descricao": "Descrição aqui.",
35
  "sintomas": [
36
  "Sintoma 1.",
 
40
  "tratamento": "Tratamento aqui."
41
  },
42
  "Virus do Mosaico": {
43
+ "nome": "Vírus do Mosaico",
44
  "descricao": "Causado pelo Soybean Mosaic Virus (SMV), transmitido por pulgões.",
45
  "sintomas": [
46
  "Folhas novas ficam enrugadas e com padrões de verde claro e escuro (mosaico).",
 
49
  "tratamento": "Não há cura. Use sementes sadias e controle os pulgões (vetores) com inseticidas."
50
  },
51
  "Mancha bacteriana": {
52
+ "nome": "Mancha Bacteriana",
53
  "descricao": "Descrição aqui.",
54
  "sintomas": [
55
  "Sintoma 1.",
 
59
  "tratamento": "Tratamento aqui."
60
  },
61
  "Podridão do Sul": {
62
+ "nome": "Podridão do Sul",
63
  "descricao": "Descrição aqui.",
64
  "sintomas": [
65
  "Sintoma 1.",
 
69
  "tratamento": "Tratamento aqui."
70
  },
71
  "Queima das folhas por cercosporea": {
72
+ "nome": "Queima foliar por Cercospora",
73
  "descricao": "Descrição aqui.",
74
  "sintomas": [
75
  "Sintoma 1.",
 
79
  "tratamento": "Tratamento aqui."
80
  },
81
  "Sindome da Morte Subita": {
82
+ "nome": "Síndrome da Morte Súbita",
83
  "descricao": "Descrição aqui.",
84
  "sintomas": [
85
  "Sintoma 1.",
 
89
  "tratamento": "Tratamento aqui."
90
  },
91
  "Saudavel": {
92
+ "nome": "Saudável",
93
  "descricao": "A folha não apresenta sinais visíveis de patógenos.",
94
  "sintomas": ["Nenhum."],
95
  "tratamento": "Continuar monitoramento e boas práticas agrícolas."
96
  },
97
 
98
  "Lagarta": {
99
+ "nome": "Lagarta",
100
  "descricao": "Diversas espécies de lagartas, como a lagarta-da-soja (Anticarsia gemmatalis) ou a falsa-medideira (Chrysodeixis includens), atacam as lavouras de soja, causando desfolha e redução da produtividade.",
101
  "sintomas": [
102
  "Folhas comidas ou roídas, muitas vezes começando pelas bordas.",
main.py CHANGED
@@ -97,16 +97,21 @@ async def classify_image(file: UploadFile = File(...), token: str = Depends(veri
97
  #Usa .get() para buscar a chave. Se não encontrar, retorna um
98
  #dicionário vazio ou uma mensagem de erro, com segurança
99
  info_adicional = DB_INFO.get(classe_predita, {
 
100
  "descricao": "Informações não disponíveis.",
101
  "sintomas": [],
102
  "tratamento": ""
103
  })
104
 
 
 
 
 
105
  print(f">> [{datetime.now().strftime('%d/%m %H:%M:%S')}] | Diagnóstico para {file.filename}: {classe_predita}")
106
 
107
- #Retorna a resposta "rica"
108
  return {
109
- "diagnostico": classe_predita,
 
110
  "info": info_adicional
111
  }
112
 
 
97
  #Usa .get() para buscar a chave. Se não encontrar, retorna um
98
  #dicionário vazio ou uma mensagem de erro, com segurança
99
  info_adicional = DB_INFO.get(classe_predita, {
100
+ "nome": classe_predita, #Fallback: se não achar no JSON, usa a chave feia
101
  "descricao": "Informações não disponíveis.",
102
  "sintomas": [],
103
  "tratamento": ""
104
  })
105
 
106
+ #PEGA O NOME "BONITO" DO JSON
107
+ #Tenta pegar o campo 'nome'. Se não existir, usa a 'classe_predita'
108
+ nome_exibicao = info_adicional.get("nome", classe_predita)
109
+
110
  print(f">> [{datetime.now().strftime('%d/%m %H:%M:%S')}] | Diagnóstico para {file.filename}: {classe_predita}")
111
 
 
112
  return {
113
+ "diagnostico": nome_exibicao, #AQUI VAI O NOME CORRIGIDO, INDEPENDENTE DE RÓTULO DO DATASET
114
+ "id_tecnico": classe_predita, #(Opcional) ID técnico caso necessário
115
  "info": info_adicional
116
  }
117