Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -325,34 +325,16 @@ def whatsapp_webhook():
|
|
| 325 |
|
| 326 |
if num_media > 0:
|
| 327 |
media_url = request.values.get('MediaUrl0')
|
| 328 |
-
response_text = media_url
|
| 329 |
content_type = request.values.get('MediaContentType0')
|
|
|
|
| 330 |
if content_type.startswith('image/'):
|
|
|
|
| 331 |
filepath = convert_img(media_url, account_sid, auth_token)
|
| 332 |
-
|
| 333 |
-
disease = predict_disease(filepath)
|
| 334 |
-
except:
|
| 335 |
-
disease = None
|
| 336 |
-
try:
|
| 337 |
-
pest = predict_pest(filepath)
|
| 338 |
-
except:
|
| 339 |
-
pest = None
|
| 340 |
-
|
| 341 |
-
if disease:
|
| 342 |
-
response_text = f"Detected disease: {disease}"
|
| 343 |
-
disease_info = generate_response(f"Provide brief information about {disease} in plants", chat_history)
|
| 344 |
-
response_text += f"\n\nAdditional information: {disease_info}"
|
| 345 |
-
elif pest:
|
| 346 |
-
response_text = f"Detected pest: {pest}"
|
| 347 |
-
pest_info = generate_response(f"Provide brief information about {pest} in agriculture", chat_history)
|
| 348 |
-
response_text += f"\n\nAdditional information: {pest_info}"
|
| 349 |
-
else:
|
| 350 |
-
response_text = "Please upload another image with good quality."
|
| 351 |
-
|
| 352 |
else:
|
|
|
|
| 353 |
filepath = download_and_save_as_txt(media_url, account_sid, auth_token)
|
| 354 |
-
response_text =
|
| 355 |
-
|
| 356 |
elif ('weather' in incoming_msg.lower()) or ('climate' in incoming_msg.lower()) or (
|
| 357 |
'temperature' in incoming_msg.lower()):
|
| 358 |
response_text = get_weather(incoming_msg.lower())
|
|
@@ -366,16 +348,40 @@ def whatsapp_webhook():
|
|
| 366 |
news = get_news()
|
| 367 |
response_text = generate_response(incoming_msg + ' data is ' + str(news), chat_history)
|
| 368 |
else:
|
| 369 |
-
|
| 370 |
-
if 'from pdf' in incoming_msg or 'in pdf' in incoming_msg:
|
| 371 |
-
response_text = query_rag(incoming_msg)
|
| 372 |
-
else:
|
| 373 |
-
response_text = generate_response(incoming_msg, chat_history)
|
| 374 |
|
| 375 |
conversation_memory.add_to_memory({"user": incoming_msg, "assistant": response_text})
|
| 376 |
send_message(sender, response_text)
|
| 377 |
return '', 204
|
| 378 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 379 |
|
| 380 |
def send_message(to, body):
|
| 381 |
try:
|
|
|
|
| 325 |
|
| 326 |
if num_media > 0:
|
| 327 |
media_url = request.values.get('MediaUrl0')
|
|
|
|
| 328 |
content_type = request.values.get('MediaContentType0')
|
| 329 |
+
|
| 330 |
if content_type.startswith('image/'):
|
| 331 |
+
# Handle image processing (disease/pest detection)
|
| 332 |
filepath = convert_img(media_url, account_sid, auth_token)
|
| 333 |
+
response_text = handle_image(filepath)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 334 |
else:
|
| 335 |
+
# Handle PDF processing
|
| 336 |
filepath = download_and_save_as_txt(media_url, account_sid, auth_token)
|
| 337 |
+
response_text = process_and_query_pdf(filepath)
|
|
|
|
| 338 |
elif ('weather' in incoming_msg.lower()) or ('climate' in incoming_msg.lower()) or (
|
| 339 |
'temperature' in incoming_msg.lower()):
|
| 340 |
response_text = get_weather(incoming_msg.lower())
|
|
|
|
| 348 |
news = get_news()
|
| 349 |
response_text = generate_response(incoming_msg + ' data is ' + str(news), chat_history)
|
| 350 |
else:
|
| 351 |
+
response_text = query_rag(incoming_msg)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 352 |
|
| 353 |
conversation_memory.add_to_memory({"user": incoming_msg, "assistant": response_text})
|
| 354 |
send_message(sender, response_text)
|
| 355 |
return '', 204
|
| 356 |
|
| 357 |
+
def handle_image(filepath):
|
| 358 |
+
try:
|
| 359 |
+
disease = predict_disease(filepath)
|
| 360 |
+
except:
|
| 361 |
+
disease = None
|
| 362 |
+
try:
|
| 363 |
+
pest = predict_pest(filepath)
|
| 364 |
+
except:
|
| 365 |
+
pest = None
|
| 366 |
+
|
| 367 |
+
if disease:
|
| 368 |
+
response_text = f"Detected disease: {disease}"
|
| 369 |
+
disease_info = generate_response(f"Provide brief information about {disease} in plants", chat_history)
|
| 370 |
+
response_text += f"\n\nAdditional information: {disease_info}"
|
| 371 |
+
elif pest:
|
| 372 |
+
response_text = f"Detected pest: {pest}"
|
| 373 |
+
pest_info = generate_response(f"Provide brief information about {pest} in agriculture", chat_history)
|
| 374 |
+
response_text += f"\n\nAdditional information: {pest_info}"
|
| 375 |
+
else:
|
| 376 |
+
response_text = "Please upload another image with good quality."
|
| 377 |
+
|
| 378 |
+
return response_text
|
| 379 |
+
|
| 380 |
+
def process_and_query_pdf(filepath):
|
| 381 |
+
# Assuming the PDF processing and embedding are handled here.
|
| 382 |
+
add_to_chroma(load_documents())
|
| 383 |
+
return query_rag("from pdf") # Replace with a more specific query if needed
|
| 384 |
+
|
| 385 |
|
| 386 |
def send_message(to, body):
|
| 387 |
try:
|