A comprehensive test harness for comparing Gemini text vs native-audio model variants on product voice input (including Tunisian Arabic), with full telemetry dashboard, graphs, and response history.
# Uranus - Audio to Product Description Model Tester
A comprehensive test harness for comparing Gemini text vs native-audio model variants on product voice input (including Tunisian Arabic), with full telemetry dashboard, graphs, and response history.
Inference is implemented with Vercel AI SDK (`ai`) + Google Vertex provider (`@ai-sdk/google-vertex`).
## Features
### Core Functionality
- **Audio Input**: Upload audio files or record directly in browser
- **Multi-Model Testing**: Run inference on one model or all configured models simultaneously
- **Product Descriptions**: Returns formatted product description text (not plain transcription)
- **Output Language Selection**: Choose between English, French, Standard Arabic, or Tunisian Arabic
- **OCR Input**: Extract text from images and generate product descriptions
- **URL Context**: Generate product descriptions from URLs using Vertex AI's URL context tool
### Telemetry Dashboard
- **Summary Cards**: Total requests, success/failed counts, total tokens, estimated cost
- **By Model Table**: Breakdown of runs, tokens, cost, and average latency per model
- **Recent Runs Table**: Last 20 inference runs with timestamps and results
- **Raw JSON Toggle**: View raw telemetry data
### Graphs Tab (Chart.js)
Tabbed interface with 4 views:
- **Cost**: Average cost per request by model
- **Success Rate**: Success percentage by model
- **Token Usage**: Average tokens per request by model
- **Response History**: View actual response text from each model (filterable by model)
### Saved Audio
- **Save Audio**: Permanently save voice recordings with a custom name
- **Load Audio**: Reload previously saved audio for re-testing
- **Persistence**: Saved as JSON files in `data/saved-audio/`
## Project Structure
```
uranus-bot/
├── public/ # Frontend (vanilla JS)
│ ├── index.html # Main UI
│ ├── app.js # Frontend logic, event handlers, rendering
│ └── styles.css # Stylin …