#!/usr/bin/env python3 """Detailed test script to check GPU VM connection and endpoints.""" import asyncio import sys sys.path.insert(0, '.') import httpx from backend.config import OPENAI_COMPAT_BASE_URL async def test_endpoints(): base_url = "http://10.0.30.63" ports = [8000, 11434] endpoints = [ "/v1/models", "/api/tags", "/api/version", "/", ] print("Testing GPU VM connection...") print("=" * 60) for port in ports: print(f"\nTesting port {port}:") print("-" * 60) for endpoint in endpoints: url = f"{base_url}:{port}{endpoint}" try: async with httpx.AsyncClient(timeout=5.0) as client: resp = await client.get(url) print(f" {endpoint:20} -> Status: {resp.status_code}") if resp.status_code == 200: try: data = resp.json() if isinstance(data, dict): if 'data' in data: models = data['data'] print(f" Found {len(models)} models via /v1/models") if models: print(f" First model: {models[0].get('id', models[0])}") elif 'models' in data: models = data['models'] print(f" Found {len(models)} models via /api/tags") if models: print(f" First model: {models[0].get('name', models[0])}") else: print(f" Response keys: {list(data.keys())[:5]}") elif isinstance(data, list): print(f" Found {len(data)} items") except: print(f" Response (first 200 chars): {resp.text[:200]}") except httpx.TimeoutException: print(f" {endpoint:20} -> Timeout") except httpx.ConnectError: print(f" {endpoint:20} -> Connection refused") except Exception as e: print(f" {endpoint:20} -> Error: {type(e).__name__}") if __name__ == "__main__": asyncio.run(test_endpoints())