Spaces:
Configuration error
Configuration error
""" | |
This test ensures that the proxy can passthrough requests to assemblyai | |
""" | |
import pytest | |
import assemblyai as aai | |
import aiohttp | |
import asyncio | |
import time | |
TEST_MASTER_KEY = "sk-1234" | |
TEST_BASE_URL = "http://0.0.0.0:4000/assemblyai" | |
def test_assemblyai_basic_transcribe(): | |
print("making basic transcribe request to assemblyai passthrough") | |
# Replace with your API key | |
aai.settings.api_key = f"Bearer {TEST_MASTER_KEY}" | |
aai.settings.base_url = TEST_BASE_URL | |
# URL of the file to transcribe | |
FILE_URL = "https://assembly.ai/wildfires.mp3" | |
# You can also transcribe a local file by passing in a file path | |
# FILE_URL = './path/to/file.mp3' | |
transcriber = aai.Transcriber() | |
transcript = transcriber.transcribe(FILE_URL) | |
print(transcript) | |
print(transcript.id) | |
if transcript.id: | |
transcript.delete_by_id(transcript.id) | |
else: | |
pytest.fail("Failed to get transcript id") | |
if transcript.status == aai.TranscriptStatus.error: | |
print(transcript.error) | |
pytest.fail(f"Failed to transcribe file error: {transcript.error}") | |
else: | |
print(transcript.text) | |
async def generate_key(calling_key: str) -> str: | |
"""Helper function to generate a new API key""" | |
url = "http://0.0.0.0:4000/key/generate" | |
headers = { | |
"Authorization": f"Bearer {calling_key}", | |
"Content-Type": "application/json", | |
} | |
async with aiohttp.ClientSession() as session: | |
async with session.post(url, headers=headers, json={}) as response: | |
if response.status == 200: | |
data = await response.json() | |
return data.get("key") | |
raise Exception(f"Failed to generate key: {response.status}") | |
async def test_assemblyai_transcribe_with_non_admin_key(): | |
# Generate a non-admin key using the helper | |
non_admin_key = await generate_key(TEST_MASTER_KEY) | |
print(f"Generated non-admin key: {non_admin_key}") | |
# Use the non-admin key to transcribe | |
# Replace with your API key | |
aai.settings.api_key = f"Bearer {non_admin_key}" | |
aai.settings.base_url = TEST_BASE_URL | |
# URL of the file to transcribe | |
FILE_URL = "https://assembly.ai/wildfires.mp3" | |
# You can also transcribe a local file by passing in a file path | |
# FILE_URL = './path/to/file.mp3' | |
request_start_time = time.time() | |
transcriber = aai.Transcriber() | |
transcript = transcriber.transcribe(FILE_URL) | |
print(transcript) | |
print(transcript.id) | |
if transcript.id: | |
transcript.delete_by_id(transcript.id) | |
else: | |
pytest.fail("Failed to get transcript id") | |
if transcript.status == aai.TranscriptStatus.error: | |
print(transcript.error) | |
pytest.fail(f"Failed to transcribe file error: {transcript.error}") | |
else: | |
print(transcript.text) | |
request_end_time = time.time() | |
print(f"Request took {request_end_time - request_start_time} seconds") | |