MyAbsa_API / TestAPI.py
chironjit45
add TestAPI file
58e59ca
import requests
import json
import os
ROOT_API = "https://masumbhuiyan-myabsaservice.hf.space"
def call_greets_json():
headers = {"Content-Type": "application/json"}
try:
response = requests.get(ROOT_API + "/greet", json={}, headers=headers)
response.raise_for_status()
result = response.json()
return {
"status": "success",
"response": result,
"message": "Endpoint is working correctly"
}
except requests.exceptions.HTTPError as http_err:
return {
"status": "error",
"error": f"HTTP error occurred: {str(http_err)}",
"status_code": response.status_code
}
except requests.exceptions.RequestException as req_err:
return {
"status": "error",
"error": f"Request error occurred: {str(req_err)}"
}
except json.JSONDecodeError:
return {
"status": "error",
"error": "Invalid JSON response from API"
}
def call_predict_api(text: str, aspect: str) -> dict:
payload = {
"text": text,
"aspect": aspect
}
headers = {
"Content-Type": "application/json"
}
try:
response = requests.post(ROOT_API + "/predict", json=payload, headers=headers)
response.raise_for_status()
result = response.json()
return {
"status": "success",
"sentiment": result.get("sentiment"),
"probabilities": result.get("probabilities"),
"raw_response": result
}
except requests.exceptions.HTTPError as http_err:
return {
"status": "error",
"error": f"HTTP error occurred: {str(http_err)}",
"status_code": response.status_code
}
except requests.exceptions.RequestException as req_err:
return {
"status": "error",
"error": f"Request error occurred: {str(req_err)}"
}
except json.JSONDecodeError:
return {
"status": "error",
"error": "Invalid JSON response from API",
"raw_response": response.text
}
if __name__ == "__main__":
# response = call_greets_json()
# print(response)
test_cases = [
{"text": "The food was great but the service was slow", "aspect": "food"},
{"text": "The ambiance is nice but very crowded", "aspect": "ambiance"}
]
for case in test_cases:
result = call_predict_api(case["text"], case["aspect"])
print(f"\nInput: text='{case['text']}', aspect='{case['aspect']}'")
if result["status"] == "success":
print(f"Sentiment: {result['sentiment']}")
print(f"Probabilities: {result['probabilities']}")
else:
print(f"Error: {result['error']}")
if "status_code" in result:
print(f"Status Code: {result['status_code']}")
if "raw_response" in result:
print(f"Raw Response: {result['raw_response']}")