#!/usr/bin/env python3 """ Debug script to check API status and endpoints """ import requests import json def check_space_status(): """Check if the space is running""" print("šŸ” Checking space status...") try: # Check main page response = requests.get("https://hanszhu-dense-captioning-platform.hf.space/") print(f"Main page status: {response.status_code}") if response.status_code == 200: print("āœ… Space is accessible") else: print("āŒ Space is not accessible") except Exception as e: print(f"āŒ Error checking space: {e}") def check_api_endpoints(): """Check various API endpoints""" print("\nšŸ” Checking API endpoints...") base_url = "https://hanszhu-dense-captioning-platform.hf.space" endpoints = [ "/", "/api", "/api/predict", "/predict", "/api/predict/", "/predict/" ] for endpoint in endpoints: try: response = requests.get(f"{base_url}{endpoint}") print(f"{endpoint}: {response.status_code} - {response.headers.get('content-type', 'unknown')}") if response.status_code == 200: print(f" Content preview: {response.text[:100]}...") except Exception as e: print(f"{endpoint}: Error - {e}") def test_post_request(): """Test POST request to predict endpoint""" print("\nšŸ” Testing POST request...") try: # Test URL test_url = "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" # Try different POST formats test_data = [ {"data": [test_url]}, {"fn_index": 0, "data": [test_url]}, {"data": test_url}, test_url ] for i, data in enumerate(test_data): print(f"\nTest {i+1}: {type(data)}") try: response = requests.post( "https://hanszhu-dense-captioning-platform.hf.space/predict", json=data, headers={"Content-Type": "application/json"} ) print(f" Status: {response.status_code}") print(f" Content-Type: {response.headers.get('content-type', 'unknown')}") print(f" Response: {response.text[:200]}...") except Exception as e: print(f" Error: {e}") except Exception as e: print(f"āŒ Error in POST test: {e}") def test_gradio_client_detailed(): """Test gradio_client with detailed error handling""" print("\nšŸ” Testing gradio_client with detailed error handling...") try: from gradio_client import Client print("Creating client...") client = Client("hanszhu/Dense-Captioning-Platform") print("Getting space info...") info = client.view_api() print(f"API info: {info}") print("Making prediction...") test_url = "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png" result = client.predict(test_url, api_name="/predict") print(f"āœ… Success! Result: {result}") except Exception as e: print(f"āŒ gradio_client error: {e}") import traceback traceback.print_exc() if __name__ == "__main__": print("šŸš€ Debugging Dense Captioning Platform API") print("=" * 60) check_space_status() check_api_endpoints() test_post_request() test_gradio_client_detailed() print("\n" + "=" * 60) print("�� Debug completed!")