|
|
|
|
|
""" |
|
|
Test script for the Dense Captioning Platform API |
|
|
""" |
|
|
|
|
|
import requests |
|
|
import json |
|
|
from PIL import Image |
|
|
import io |
|
|
import base64 |
|
|
|
|
|
def test_api_with_url(): |
|
|
"""Test the API using a URL""" |
|
|
print("π§ͺ Testing API with URL...") |
|
|
|
|
|
|
|
|
test_url = "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" |
|
|
|
|
|
|
|
|
api_url = "https://hanszhu-dense-captioning-platform.hf.space/predict" |
|
|
|
|
|
try: |
|
|
|
|
|
response = requests.post( |
|
|
api_url, |
|
|
json={"data": [test_url]}, |
|
|
headers={"Content-Type": "application/json"} |
|
|
) |
|
|
|
|
|
print(f"Status Code: {response.status_code}") |
|
|
print(f"Response: {response.text[:500]}...") |
|
|
|
|
|
if response.status_code == 200: |
|
|
result = response.json() |
|
|
print("β
API test successful!") |
|
|
print(f"Chart Type: {result.get('data', [{}])[0].get('chart_type_label', 'Unknown')}") |
|
|
else: |
|
|
print("β API test failed!") |
|
|
|
|
|
except Exception as e: |
|
|
print(f"β Error testing API: {e}") |
|
|
|
|
|
def test_api_with_gradio_client(): |
|
|
"""Test the API using gradio_client""" |
|
|
print("\nπ§ͺ Testing API with gradio_client...") |
|
|
|
|
|
try: |
|
|
from gradio_client import Client |
|
|
|
|
|
|
|
|
client = Client("hanszhu/Dense-Captioning-Platform") |
|
|
|
|
|
|
|
|
result = client.predict( |
|
|
"https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png", |
|
|
api_name="/predict" |
|
|
) |
|
|
|
|
|
print("β
gradio_client test successful!") |
|
|
print(f"Result: {result}") |
|
|
|
|
|
except Exception as e: |
|
|
print(f"β Error with gradio_client: {e}") |
|
|
|
|
|
def test_api_endpoints(): |
|
|
"""Test available API endpoints""" |
|
|
print("\nπ§ͺ Testing API endpoints...") |
|
|
|
|
|
base_url = "https://hanszhu-dense-captioning-platform.hf.space" |
|
|
|
|
|
endpoints = [ |
|
|
"/", |
|
|
"/api", |
|
|
"/api/predict", |
|
|
"/predict" |
|
|
] |
|
|
|
|
|
for endpoint in endpoints: |
|
|
try: |
|
|
response = requests.get(f"{base_url}{endpoint}") |
|
|
print(f"{endpoint}: {response.status_code}") |
|
|
except Exception as e: |
|
|
print(f"{endpoint}: Error - {e}") |
|
|
|
|
|
if __name__ == "__main__": |
|
|
print("π Testing Dense Captioning Platform API") |
|
|
print("=" * 50) |
|
|
|
|
|
|
|
|
test_api_endpoints() |
|
|
test_api_with_url() |
|
|
test_api_with_gradio_client() |
|
|
|
|
|
print("\n" + "=" * 50) |
|
|
print("π API testing completed!") |