Spaces:
Runtime error
Runtime error
File size: 2,508 Bytes
007ec3d 642be75 007ec3d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
import os
import json
import requests
from dotenv import load_dotenv
load_dotenv()
# os.environ.get('SUPABASE_URL')
def parse_data(data):
data_bytes = requests.body
data_decoded = data_bytes.decode()
data_json = json.loads(data_decoded)
return data_json
def generate_message(data_json):
""" pending
REQUIREMENTS
- implement logging of message
- have a very simple activity which allows for different dialogue
* add - Add the numbers, 1+1, 2+2
* subtract - Subtract the numbers, 1-1, 2-2
* menu - Choose one
- send message data to retrieve dialogue state
- retrieve response and build message object
- send message object
Need to make util functions that apply to both /nlu and /conversation_manager
"""
# Intent Labelling #######################
# Call to Wit.ai for intent recognition
# message = data_json['messages'][0]['text']['body']
# formatted_message = message.replace(' ', '%20')
# Send a custom message with buttons
headers = {
'Authorization': f"Bearer {os.environ.get('TURN_AUTHENTICATION_TOKEN')}",
'Content-Type': 'application/json'
}
data = {
"to": data_json['message']['_vnd']['v1']['chat']['owner'],
# "to": "alan",
"type": "interactive",
"interactive": {
"type": "button",
# "header": { },
"body": {
"text": "Did I answer your question?"
},
# "footer": { },
"action": {
"buttons": [
{
"type": "reply",
"reply": {
"id": "inquiry-yes",
"title": "Yes"
}
},
{
"type": "reply",
"reply": {
"id": "inquiry-no",
"title": "No"
}
}
]
}
}
}
r = requests.post(f'https://whatsapp.turn.io/v1/messages', data=json.dumps(data), headers=headers)
print("==================")
print("Headers")
print(headers)
print("Data")
print(data)
print("Request Info")
print(r)
print("--")
print(r.body)
print("==================")
context = {"content":{"user":"Alan", "state": "received-and-replied-state"}}
return context
|