- Added views for webshop admin interface using FastAPI and Jinja2 templates. - Created initial SQL migration for webshop configurations, products, orders, and order items. - Defined module metadata in module.json for webshop. - Implemented HTML template for the webshop index page. - Documented frontend requirements and API contracts in WEBSHOP_FRONTEND_PROMPT.md. - Introduced scripts for generating conversation summaries and testing Whisper capabilities.
62 lines
2.6 KiB
Python
62 lines
2.6 KiB
Python
|
|
import aiohttp
|
|
import asyncio
|
|
import os
|
|
import json
|
|
|
|
async def test_whisper_variant(session, url, file_path, params=None, form_fields=None, description=""):
|
|
print(f"\n--- Testing: {description} ---")
|
|
try:
|
|
data = aiohttp.FormData()
|
|
# Re-open file for each request to ensure pointer is at start
|
|
data.add_field('file', open(file_path, 'rb'), filename='rec.mp3')
|
|
|
|
if form_fields:
|
|
for k, v in form_fields.items():
|
|
data.add_field(k, str(v))
|
|
|
|
async with session.post(url, data=data, params=params) as response:
|
|
print(f"Status: {response.status}")
|
|
if response.status == 200:
|
|
try:
|
|
text_content = await response.text()
|
|
try:
|
|
result = json.loads(text_content)
|
|
# Print keys to see if we got something new
|
|
if isinstance(result, dict):
|
|
print("Keys:", result.keys())
|
|
if 'results' in result and len(result['results']) > 0:
|
|
print("Result[0] keys:", result['results'][0].keys())
|
|
if 'segments' in result:
|
|
print("FOUND SEGMENTS!")
|
|
print("Raw (truncated):", text_content[:300])
|
|
except:
|
|
print("Non-JSON Response:", text_content[:300])
|
|
except Exception as e:
|
|
print(f"Reading error: {e}")
|
|
else:
|
|
print("Error:", await response.text())
|
|
except Exception as e:
|
|
print(f"Exception: {e}")
|
|
|
|
async def test_whisper():
|
|
url = "http://172.16.31.115:5000/transcribe"
|
|
file_path = "uploads/email_attachments/65d2ca781a6bf3cee9cee0a8ce80acac_rec.mp3"
|
|
|
|
if not os.path.exists(file_path):
|
|
print(f"File not found: {file_path}")
|
|
return
|
|
|
|
async with aiohttp.ClientSession() as session:
|
|
# Variant 1: 'timestamps': 'true' as form field
|
|
await test_whisper_variant(session, url, file_path, form_fields={'timestamps': 'true'}, description="Form: timestamps=true")
|
|
|
|
# Variant 2: 'response_format': 'verbose_json' (OpenAI style)
|
|
await test_whisper_variant(session, url, file_path, form_fields={'response_format': 'verbose_json'}, description="Form: verbose_json")
|
|
|
|
# Variant 3: 'verbose': 'true'
|
|
await test_whisper_variant(session, url, file_path, form_fields={'verbose': 'true'}, description="Form: verbose=true")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(test_whisper())
|