Spaces:
Runtime error
Runtime error
Greg Thompson
commited on
Commit
•
8f1bf52
1
Parent(s):
ac44250
Update nlu with to work with simplified event data object
Browse files- app.py +5 -5
- mathtext_fastapi/nlu.py +9 -9
app.py
CHANGED
@@ -81,6 +81,7 @@ async def programmatic_message_manager(request: Request):
|
|
81 |
context = manage_conversational_response(data_dict)
|
82 |
return JSONResponse(context)
|
83 |
|
|
|
84 |
@app.post("/nlu")
|
85 |
async def evaluate_user_message_with_nlu_api(request: Request):
|
86 |
""" Calls NLU APIs on the most recent user message from Turn.io message data and logs the message data
|
@@ -96,12 +97,12 @@ async def evaluate_user_message_with_nlu_api(request: Request):
|
|
96 |
data_dict = await request.json()
|
97 |
|
98 |
message_data = data_dict.get('message_data', '')
|
99 |
-
message_text = message_data['
|
100 |
|
101 |
# Handles if a student answer is already an integer or a float (ie., 8)
|
102 |
if type(message_text) == int or type(message_text) == float:
|
103 |
nlu_response = {'type': 'integer', 'data': message_text, 'confidence': ''}
|
104 |
-
prepare_message_data_for_logging(message_data, nlu_response
|
105 |
return JSONResponse(content=nlu_response)
|
106 |
|
107 |
# Removes whitespace and converts str to arr to handle multiple numbers
|
@@ -110,7 +111,7 @@ async def evaluate_user_message_with_nlu_api(request: Request):
|
|
110 |
# Handle if a student answer is a string of numbers (ie., "8,9, 10")
|
111 |
if all(ele.isdigit() for ele in message_text_arr):
|
112 |
nlu_response = {'type': 'integer', 'data': ','.join(message_text_arr), 'confidence': ''}
|
113 |
-
prepare_message_data_for_logging(message_data, nlu_response
|
114 |
return JSONResponse(content=nlu_response)
|
115 |
|
116 |
student_response_arr = []
|
@@ -134,6 +135,5 @@ async def evaluate_user_message_with_nlu_api(request: Request):
|
|
134 |
else:
|
135 |
nlu_response = {'type': 'integer', 'data': student_response_arr[0], 'confidence': ''}
|
136 |
|
137 |
-
|
138 |
-
prepare_message_data_for_logging(message_data, nlu_response, message_data)
|
139 |
return JSONResponse(content=nlu_response)
|
|
|
81 |
context = manage_conversational_response(data_dict)
|
82 |
return JSONResponse(context)
|
83 |
|
84 |
+
|
85 |
@app.post("/nlu")
|
86 |
async def evaluate_user_message_with_nlu_api(request: Request):
|
87 |
""" Calls NLU APIs on the most recent user message from Turn.io message data and logs the message data
|
|
|
97 |
data_dict = await request.json()
|
98 |
|
99 |
message_data = data_dict.get('message_data', '')
|
100 |
+
message_text = message_data['message_body']
|
101 |
|
102 |
# Handles if a student answer is already an integer or a float (ie., 8)
|
103 |
if type(message_text) == int or type(message_text) == float:
|
104 |
nlu_response = {'type': 'integer', 'data': message_text, 'confidence': ''}
|
105 |
+
prepare_message_data_for_logging(message_data, nlu_response)
|
106 |
return JSONResponse(content=nlu_response)
|
107 |
|
108 |
# Removes whitespace and converts str to arr to handle multiple numbers
|
|
|
111 |
# Handle if a student answer is a string of numbers (ie., "8,9, 10")
|
112 |
if all(ele.isdigit() for ele in message_text_arr):
|
113 |
nlu_response = {'type': 'integer', 'data': ','.join(message_text_arr), 'confidence': ''}
|
114 |
+
prepare_message_data_for_logging(message_data, nlu_response)
|
115 |
return JSONResponse(content=nlu_response)
|
116 |
|
117 |
student_response_arr = []
|
|
|
135 |
else:
|
136 |
nlu_response = {'type': 'integer', 'data': student_response_arr[0], 'confidence': ''}
|
137 |
|
138 |
+
prepare_message_data_for_logging(message_data, nlu_response)
|
|
|
139 |
return JSONResponse(content=nlu_response)
|
mathtext_fastapi/nlu.py
CHANGED
@@ -42,7 +42,7 @@ def get_or_create_supabase_entry(table_name, insert_data, check_variable=None):
|
|
42 |
|
43 |
|
44 |
|
45 |
-
def prepare_message_data_for_logging(message_data, nlu_response
|
46 |
""" Builds the message data for each table and ensures it's logged to the database
|
47 |
|
48 |
Input:
|
@@ -56,7 +56,7 @@ def prepare_message_data_for_logging(message_data, nlu_response, request_object)
|
|
56 |
|
57 |
contact_data = {
|
58 |
'project': project_data_log.data[0]['id'], # FK
|
59 |
-
'original_contact_id': message_data['
|
60 |
'urn': "",
|
61 |
'language_code': "en",
|
62 |
'contact_inserted_at': format_datetime_in_isoformat(datetime.now())
|
@@ -66,16 +66,16 @@ def prepare_message_data_for_logging(message_data, nlu_response, request_object)
|
|
66 |
|
67 |
message_data = {
|
68 |
'contact': contact_data_log.data[0]['id'], # FK
|
69 |
-
'original_message_id': message_data['
|
70 |
-
'text': message_data['
|
71 |
-
'direction': message_data['
|
72 |
-
'sender_type': message_data['
|
73 |
'channel_type': "whatsapp / turn.io",
|
74 |
-
'message_inserted_at': message_data['
|
75 |
-
'message_modified_at': message_data['
|
76 |
'message_sent_at': format_datetime_in_isoformat(datetime.now()),
|
77 |
'nlu_response': nlu_response,
|
78 |
-
'request_object':
|
79 |
# Autogenerated fields: created_at, modified_at
|
80 |
}
|
81 |
message_data_log = log_message_data_through_supabase_api('message', message_data)
|
|
|
42 |
|
43 |
|
44 |
|
45 |
+
def prepare_message_data_for_logging(message_data, nlu_response):
|
46 |
""" Builds the message data for each table and ensures it's logged to the database
|
47 |
|
48 |
Input:
|
|
|
56 |
|
57 |
contact_data = {
|
58 |
'project': project_data_log.data[0]['id'], # FK
|
59 |
+
'original_contact_id': message_data['contact_uuid'],
|
60 |
'urn': "",
|
61 |
'language_code': "en",
|
62 |
'contact_inserted_at': format_datetime_in_isoformat(datetime.now())
|
|
|
66 |
|
67 |
message_data = {
|
68 |
'contact': contact_data_log.data[0]['id'], # FK
|
69 |
+
'original_message_id': message_data['message_id'],
|
70 |
+
'text': message_data['message_body'],
|
71 |
+
'direction': message_data['message_direction'],
|
72 |
+
'sender_type': message_data['author_type'],
|
73 |
'channel_type': "whatsapp / turn.io",
|
74 |
+
'message_inserted_at': message_data['message_inserted_at'],
|
75 |
+
'message_modified_at': message_data['message_updated_at'],
|
76 |
'message_sent_at': format_datetime_in_isoformat(datetime.now()),
|
77 |
'nlu_response': nlu_response,
|
78 |
+
'request_object': message_data
|
79 |
# Autogenerated fields: created_at, modified_at
|
80 |
}
|
81 |
message_data_log = log_message_data_through_supabase_api('message', message_data)
|