order-status / app.py
Arnasltlt
Loads of updates. Second version
88fac70 unverified
raw
history blame
No virus
3.85 kB
import gradio as gr
import requests
def send_message_via_api(to_number, message):
# response.json()API endpoint
url = "https://whatsapp.arnasltlt.repl.co/send"
print(to_number)
# Send POST request
response = requests.post(url, data={"to_number": to_number, "message": f"[Order {message}] Hi, What is the order status for " + message+ '?'})
print(response.text)
# Return the response or any relevant message
history = get_history()
return history
def get_history():
# Endpoint
url = "https://whatsapp.arnasltlt.repl.co/get_history"
# Make a GET request
response = requests.get(url)
# Ensure the response was successful
response.raise_for_status()
html_string = """
<html>
<head>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f0f0;
margin: 0;
padding: 20px;
color: black;
}
.chat-container {
display: flex;
flex-direction: column;
max-width: 400px;
margin: 0 auto;
background-color: #fff;
border-radius: 8px;
padding: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.chat-bubble {
padding: 10px;
margin: 5px 0;
border-radius: 15px;
line-height: 1.4;
color: black;
}
.chat-bubble.assistant {
background-color: #009688;
align-self: flex-start;
}
.chat-bubble.function {
background-color: gray;
align-self: flex-start;
}
.chat-bubble.user {
background-color: #ff5722;
align-self: flex-end;
}
#my_ai {
background-color: #2b524e;
padding:10px;
}
#your_ai {
background-color: #c7674a;
padding:10px;
}
#your_ai_box{
background:#c7674a;
}
#my_ai_box{
background:#2b524e;
border-color:black;
}
</style>
</head>
<body>
<div class="chat-container">
"""
history = response.json()
for entry in history:
role = entry['role']
content = entry['content']
html_string += f'<div class="chat-bubble {role}"><b>{role.capitalize()}:</b> {content}</div>'
html_string += """
</div>
</body>
</html>
"""
return html_string
def final_answer():
url = "https://whatsapp.arnasltlt.repl.co/get_order_status"
# Make a GET request
response = requests.get(url)
return response.text
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
inp=gr.Textbox(label='phone',value='+37068995284')
number= gr.Textbox(label='Order Number',value='134JAN42')
btn = gr.Button('Send')
with gr.Column():
gr.Markdown('### The conversation')
dt = gr.HTML(label="History")
demo.load(get_history, inputs=None, outputs=dt, every=5, queue=True)
# with gr.Row():
# final = gr.Textbox()
# demo.load(final_answer, inputs=None, outputs=final, every=300, queue=True)
btn.click(fn=send_message_via_api,inputs=[inp,number],outputs=dt)
demo.queue(max_size=20)
demo.launch()