mathtext-fastapi / mathtext_fastapi /conversation_manager.py
Greg Thompson
Added conversation_manager endpoint for programmatic message control
007ec3d
raw
history blame
2.39 kB
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"
}
}
]
}
}
}
print("DATA=====================")
print(data)
print("=========================")
# r = requests.post(f'https://whatsapp.turn.io/v1/messages', data=json.dumps(data), headers=headers)
context = {"content":{"user":"Alan", "state": "received-and-replied-state"}}
return context