Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -497,7 +497,6 @@ iterations = 0
|
|
497 |
|
498 |
|
499 |
def answer_question(user_question, chatbot, audio=None):
|
500 |
-
|
501 |
global iterations
|
502 |
iterations = 0
|
503 |
# Ensure the temporary chart directory exists
|
@@ -527,9 +526,9 @@ def answer_question(user_question, chatbot, audio=None):
|
|
527 |
except sr.RequestError:
|
528 |
user_question = "Could not request results from Google Speech Recognition service."
|
529 |
|
530 |
-
|
531 |
|
532 |
-
|
533 |
email_match = re.search(r"send email to ([\w\.-]+@[\w\.-]+)", user_question)
|
534 |
if email_match:
|
535 |
user_email = email_match.group(1).strip()
|
@@ -537,43 +536,40 @@ def answer_question(user_question, chatbot, audio=None):
|
|
537 |
user_question = f"{user_question}:{user_email}"
|
538 |
"""
|
539 |
|
540 |
-
|
541 |
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
|
550 |
-
|
551 |
-
|
552 |
|
553 |
if os.getenv("IMAGE_PATH") in response_text:
|
554 |
# Open the image file
|
555 |
img = Image.open(os.getenv("IMAGE_PATH"))
|
556 |
-
|
557 |
# Convert the PIL Image to a base64 encoded string
|
558 |
buffered = BytesIO()
|
559 |
img.save(buffered, format="PNG")
|
560 |
img_str = base64.b64encode(buffered.getvalue()).decode("utf-8")
|
561 |
-
|
562 |
img = f'<img src="data:image/png;base64,{img_str}" style="width:500px; height:400px;">'
|
563 |
# image = gr.Image(value=img_str)
|
564 |
chatbot.append((user_question, img))
|
565 |
-
|
566 |
email_pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
|
567 |
match = re.search(email_pattern, user_question)
|
568 |
if match:
|
569 |
-
user_email =
|
570 |
-
|
571 |
-
|
572 |
-
if len(user_email)>0:
|
573 |
-
import asyncio
|
574 |
-
|
575 |
# Send email with the chart image attached
|
576 |
-
#coro=
|
577 |
send_email_with_attachment(
|
578 |
recipient_email=user_email,
|
579 |
subject="Warehouse Inventory Report",
|
@@ -582,9 +578,6 @@ def answer_question(user_question, chatbot, audio=None):
|
|
582 |
attachment_path=os.getenv("IMAGE_PATH")
|
583 |
)
|
584 |
|
585 |
-
#asyncio.run(coro)
|
586 |
-
|
587 |
-
|
588 |
if "send email to" in user_question:
|
589 |
try:
|
590 |
os.remove(img) # Clean up the temporary image file
|
@@ -604,6 +597,7 @@ def answer_question(user_question, chatbot, audio=None):
|
|
604 |
# response_text = response_text.replace('\n', ' ').replace(' ', ' ').strip()
|
605 |
# return response_text
|
606 |
|
|
|
607 |
css = """
|
608 |
.gradio-container {
|
609 |
width: 90%; /* Set the width as a percentage of the viewport */
|
|
|
497 |
|
498 |
|
499 |
def answer_question(user_question, chatbot, audio=None):
|
|
|
500 |
global iterations
|
501 |
iterations = 0
|
502 |
# Ensure the temporary chart directory exists
|
|
|
526 |
except sr.RequestError:
|
527 |
user_question = "Could not request results from Google Speech Recognition service."
|
528 |
|
529 |
+
while iterations < max_iterations:
|
530 |
|
531 |
+
"""if "send email to" in user_question:
|
532 |
email_match = re.search(r"send email to ([\w\.-]+@[\w\.-]+)", user_question)
|
533 |
if email_match:
|
534 |
user_email = email_match.group(1).strip()
|
|
|
536 |
user_question = f"{user_question}:{user_email}"
|
537 |
"""
|
538 |
|
539 |
+
response = agent_executor.invoke({"input": user_question}, config={"callbacks": [langfuse_handler]})
|
540 |
|
541 |
+
if isinstance(response, dict):
|
542 |
+
response_text = response.get("output", "")
|
543 |
+
else:
|
544 |
+
response_text = response
|
545 |
+
if "invalid" not in response_text.lower():
|
546 |
+
break
|
547 |
+
iterations += 1
|
548 |
|
549 |
+
if iterations == max_iterations:
|
550 |
+
return "The agent could not generate a valid response within the iteration limit."
|
551 |
|
552 |
if os.getenv("IMAGE_PATH") in response_text:
|
553 |
# Open the image file
|
554 |
img = Image.open(os.getenv("IMAGE_PATH"))
|
555 |
+
|
556 |
# Convert the PIL Image to a base64 encoded string
|
557 |
buffered = BytesIO()
|
558 |
img.save(buffered, format="PNG")
|
559 |
img_str = base64.b64encode(buffered.getvalue()).decode("utf-8")
|
560 |
+
|
561 |
img = f'<img src="data:image/png;base64,{img_str}" style="width:500px; height:400px;">'
|
562 |
# image = gr.Image(value=img_str)
|
563 |
chatbot.append((user_question, img))
|
564 |
+
|
565 |
email_pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
|
566 |
match = re.search(email_pattern, user_question)
|
567 |
if match:
|
568 |
+
user_email = match.group() # Return the matched email
|
569 |
+
|
570 |
+
# email send
|
571 |
+
if len(user_email) > 0:
|
|
|
|
|
572 |
# Send email with the chart image attached
|
|
|
573 |
send_email_with_attachment(
|
574 |
recipient_email=user_email,
|
575 |
subject="Warehouse Inventory Report",
|
|
|
578 |
attachment_path=os.getenv("IMAGE_PATH")
|
579 |
)
|
580 |
|
|
|
|
|
|
|
581 |
if "send email to" in user_question:
|
582 |
try:
|
583 |
os.remove(img) # Clean up the temporary image file
|
|
|
597 |
# response_text = response_text.replace('\n', ' ').replace(' ', ' ').strip()
|
598 |
# return response_text
|
599 |
|
600 |
+
|
601 |
css = """
|
602 |
.gradio-container {
|
603 |
width: 90%; /* Set the width as a percentage of the viewport */
|