Spaces:
Sleeping
Sleeping
#!/usr/bin/env python3 | |
""" | |
Test script for audio roleplay API | |
""" | |
import requests | |
import json | |
import base64 | |
# API configuration | |
API_BASE_URL = "http://localhost:8000" | |
# API_BASE_URL = "https://abao77-run-code-api.hf.space" | |
def test_text_message(): | |
"""Test sending text message only""" | |
print("Testing text message...") | |
scenario = { | |
"scenario_title": "Restaurant Order", | |
"scenario_description": "Order food at a restaurant", | |
"scenario_context": "You are at a restaurant and want to order food", | |
"your_role": "Customer", | |
"key_vocabulary": ["menu", "order", "bill", "table"] | |
} | |
data = { | |
"session_id": "test-session-123", | |
"scenario": json.dumps(scenario), | |
"text_message": "Hello, I'd like to see the menu please." | |
} | |
try: | |
response = requests.post(f"{API_BASE_URL}/api/ai/roleplay", data=data) | |
if response.ok: | |
result = response.json() | |
print("β Text message test successful!") | |
print(f"Response: {result.get('response', 'No response')}") | |
else: | |
print(f"β Text message test failed: {response.status_code}") | |
print(f"Error: {response.text}") | |
except Exception as e: | |
print(f"β Text message test error: {e}") | |
def test_audio_message(): | |
"""Test sending audio file""" | |
print("\nTesting audio message...") | |
scenario = { | |
"scenario_title": "Restaurant Order", | |
"scenario_description": "Order food at a restaurant", | |
"scenario_context": "You are at a restaurant and want to order food", | |
"your_role": "Customer", | |
"key_vocabulary": ["menu", "order", "bill", "table"] | |
} | |
# Create a dummy audio file (in real scenario, this would be actual audio) | |
dummy_audio_data = b"fake_audio_data_for_testing" | |
data = { | |
"session_id": "test-session-456", | |
"scenario": json.dumps(scenario) | |
} | |
files = { | |
"audio_file": ("test_audio.wav", dummy_audio_data, "audio/wav") | |
} | |
try: | |
response = requests.post(f"{API_BASE_URL}/api/ai/roleplay", data=data, files=files) | |
if response.ok: | |
result = response.json() | |
print("β Audio message test successful!") | |
print(f"Response: {result.get('response', 'No response')}") | |
else: | |
print(f"β Audio message test failed: {response.status_code}") | |
print(f"Error: {response.text}") | |
except Exception as e: | |
print(f"β Audio message test error: {e}") | |
def test_combined_message(): | |
"""Test sending both text and audio""" | |
print("\nTesting combined text + audio message...") | |
scenario = { | |
"scenario_title": "Restaurant Order", | |
"scenario_description": "Order food at a restaurant", | |
"scenario_context": "You are at a restaurant and want to order food", | |
"your_role": "Customer", | |
"key_vocabulary": ["menu", "order", "bill", "table"] | |
} | |
dummy_audio_data = b"fake_audio_data_for_testing" | |
data = { | |
"session_id": "test-session-789", | |
"scenario": json.dumps(scenario), | |
"text_message": "I have a question about the menu" | |
} | |
files = { | |
"audio_file": ("question.wav", dummy_audio_data, "audio/wav") | |
} | |
try: | |
response = requests.post(f"{API_BASE_URL}/api/ai/roleplay", data=data, files=files) | |
if response.ok: | |
result = response.json() | |
print("β Combined message test successful!") | |
print(f"Response: {result.get('response', 'No response')}") | |
else: | |
print(f"β Combined message test failed: {response.status_code}") | |
print(f"Error: {response.text}") | |
except Exception as e: | |
print(f"β Combined message test error: {e}") | |
if __name__ == "__main__": | |
print("π§ͺ Testing Audio Roleplay API") | |
print("=" * 50) | |
test_text_message() | |
test_audio_message() | |
test_combined_message() | |
print("\n" + "=" * 50) | |
print("π Testing completed!") | |