riabayonaor commited on
Commit
2e91b91
1 Parent(s): 834d12c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -14
app.py CHANGED
@@ -14,12 +14,22 @@ API_URL = "https://api-inference.huggingface.co/models/riabayonaor/modelo_predic
14
  META_LLAMA_API_URL = "https://api-inference.huggingface.co/models/meta-llama/Meta-Llama-3-8B-Instruct"
15
  headers = {"Authorization": f"Bearer {huggingface_api_key}"}
16
 
 
 
 
 
17
  def query(image_bytes):
18
  response = requests.post(API_URL, headers=headers, data=image_bytes)
 
 
 
19
  return response.json()
20
 
21
  def llama_query(prompt):
22
  response = requests.post(META_LLAMA_API_URL, headers=headers, json={"inputs": prompt})
 
 
 
23
  return response.json()
24
 
25
  def main():
@@ -42,23 +52,30 @@ def main():
42
  # Enviar la imagen al modelo de Hugging Face
43
  predictions = query(img_byte_arr)
44
 
45
- if "error" not in predictions:
46
- # Suponiendo que las predicciones están en el formato [{label: "label1", score: 0.95}, {label: "label2", score: 0.05}]
47
- top_prediction = max(predictions, key=lambda x: x["score"])
48
- st.write(f"Predicción principal: {top_prediction['label']} con confianza {top_prediction['score']:.2f}")
 
 
49
 
50
- # Usar la etiqueta principal para el modelo de Meta Llama
51
- prompt = f"Esta enfermedad es {top_prediction['label']}. Explica qué es y sugiere posibles insecticidas o soluciones."
52
 
53
- # Llamar al modelo Meta Llama
54
- llama_response = llama_query(prompt)
55
-
56
- if "error" not in llama_response:
57
- explanation = llama_response[0]["generated_text"]
58
- st.write("Explicación y posibles soluciones:")
59
- st.write(explanation)
 
 
 
 
 
60
  else:
61
- st.write("No se pudo obtener una respuesta del modelo Meta Llama.")
62
  else:
63
  st.write("No se pudo clasificar la imagen.")
64
 
 
14
  META_LLAMA_API_URL = "https://api-inference.huggingface.co/models/meta-llama/Meta-Llama-3-8B-Instruct"
15
  headers = {"Authorization": f"Bearer {huggingface_api_key}"}
16
 
17
+ # Lista de clases del modelo
18
+ classes = ["Anthracnose", "Bacterial Wilt", "Belly Rot", "Downy Mildew",
19
+ "Fresh Cucumber", "Fresh Leaf", "Gummy Stem Blight", "Pythium Fruit Rot"]
20
+
21
  def query(image_bytes):
22
  response = requests.post(API_URL, headers=headers, data=image_bytes)
23
+ if response.status_code != 200:
24
+ st.error(f"Error al clasificar la imagen: {response.status_code}")
25
+ return None
26
  return response.json()
27
 
28
  def llama_query(prompt):
29
  response = requests.post(META_LLAMA_API_URL, headers=headers, json={"inputs": prompt})
30
+ if response.status_code != 200:
31
+ st.error(f"Error al obtener respuesta del modelo Meta Llama: {response.status_code}")
32
+ return None
33
  return response.json()
34
 
35
  def main():
 
52
  # Enviar la imagen al modelo de Hugging Face
53
  predictions = query(img_byte_arr)
54
 
55
+ if predictions is not None:
56
+ if "error" not in predictions:
57
+ # Suponiendo que las predicciones están en el formato [{label: "0", score: 0.95}, {label: "1", score: 0.05}]
58
+ top_prediction = max(predictions, key=lambda x: x["score"])
59
+ class_label = classes[int(top_prediction['label'])]
60
+ st.write(f"Predicción principal: {class_label} con confianza {top_prediction['score']:.2f}")
61
 
62
+ # Usar la etiqueta principal para el modelo de Meta Llama
63
+ prompt = f"Esta enfermedad es {class_label}. Explica qué es y sugiere posibles insecticidas o soluciones."
64
 
65
+ # Llamar al modelo Meta Llama
66
+ llama_response = llama_query(prompt)
67
+
68
+ if llama_response is not None:
69
+ if "error" not in llama_response:
70
+ explanation = llama_response[0]["generated_text"]
71
+ st.write("Explicación y posibles soluciones:")
72
+ st.write(explanation)
73
+ else:
74
+ st.write("No se pudo obtener una respuesta del modelo Meta Llama.")
75
+ else:
76
+ st.write("No se pudo obtener una respuesta del modelo Meta Llama.")
77
  else:
78
+ st.write("No se pudo clasificar la imagen.")
79
  else:
80
  st.write("No se pudo clasificar la imagen.")
81