Skip to content

ArielSmoliar/llm-benchmarker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLM Benchmarker

An open-source tool for comparing AI model responses side-by-side. Select up to 5 models, enter a prompt, and instantly see responses with latency, token counts, judge scores, and efficiency recommendations. All running locally, no accounts required beyond an NVIDIA API key.

Screenshots

Model selector with AI-powered recommendations: Model selector showing Help me choose models CTA and provider-grouped model list

Result card with judge scores and Best badge: Result card showing accuracy, clarity, and conciseness scores with Best winner badge


Features

Core benchmark

  • Streaming responses: result cards appear immediately and text streams in token-by-token with a live cursor; all models stream in parallel
  • Side-by-side comparison: run up to 5 models simultaneously
  • Markdown rendering: responses render with full formatting (headers, code blocks, lists)
  • Latency chart: color-coded bar chart (green / amber / red) sorted fastest-first; failed models excluded
  • Token usage chart: completion tokens per model sorted fewest-first, with tokens/sec and an efficiency recommendation when one model uses 25% fewer tokens than average
  • Per-card token counts: prompt, completion, and total tokens on each result card
  • System prompt toggle: optionally prepend a system prompt to every model call
  • Temperature and max tokens: Settings panel in the prompt area exposes a temperature slider (0.0 precise to 1.0 creative) and a max tokens slider (256 to 4096); applied to all model calls including regenerate
  • Model selection persisted: your last selection is saved to localStorage automatically

Evaluation

  • LLM-as-judge: after a benchmark, pick any judge model to score each response 1-5 on accuracy, clarity, and conciseness; includes a one-sentence reasoning note per model
  • Winner highlighting: the highest-scoring model gets a purple "Best" badge and glowing border
  • Human voting: thumbs up / thumbs down on each card; toggleable, resets on new run

Per-card actions

  • Regenerate: re-run a single model in-place without touching other cards; clears its judge score and vote
  • Copy response: one-click clipboard copy with confirmation

History and sharing

  • Run history: every benchmark is auto-saved to localStorage (capped at 20); a drawer in the header lets you browse, restore, or delete past runs; judge scores are saved when evaluation completes
  • Shareable URLs: after each run the URL updates with ?p=<prompt>&m=<models>; open the link and the prompt and model selection are pre-filled automatically; a "Copy link" button appears next to the results header

Model health

  • Failed model indicators: models that error in a benchmark get an amber dot and border in the selector; hovering shows the last error message; the flag clears automatically when the model succeeds and expires after 24 hours

AI-powered model selection

  • Help me choose models: a prominent CTA button above the model selector opens an inline panel; describe your use case and Claude recommends 4 models from the full available list with a one-sentence reason for each pick and a selection strategy summary; click "Select these models" to auto-fill the selector and run

Benchmark Analyst (Claude agent)

  • Analyze with Claude: after a benchmark run, click "Analyze with Claude" below the result cards; a multi-step Claude agent looks up context window sizes and approximate pricing for each model via tool calls, then produces a structured markdown report covering performance summary, cost analysis, model trade-offs, and scenario-based recommendations
  • Agent-powered: uses the Anthropic SDK tool-use loop; Claude autonomously decides which model specs and pricing to fetch, executes multiple tool calls in parallel, and synthesizes everything into a report
  • Cost estimates: shows estimated cost per 1,000 runs for each model based on token usage and approximate NVIDIA NIM rates (clearly noted as approximate)

Benchmark Analysis report: Benchmark Analysis overview showing model overview table and performance summary

Cost Analysis section showing pricing per model and estimated cost per 1K runs

Model Trade-offs and Recommendation sections with scenario-based guidance


Prerequisites


Setup (3 steps)

# 1. Clone the repository
git clone https://github.com/ArielSmoliar/llm-benchmarker.git
cd llm-benchmarker

# 2. Add your NVIDIA API key
cp .env.example .env
# Edit .env and set both keys:
# NVIDIA_API_KEY=your_nvidia_key_here
# ANTHROPIC_API_KEY=your_anthropic_key_here

# 3. Start the app
docker compose up --build

Open http://localhost:3000 in your browser.

First run takes ~2 minutes to build the Docker images. Subsequent starts are instant.


Usage

  1. Select models: pick up to 5 from the panel (grouped by provider); models that failed in previous runs show an amber warning dot
  2. Write your prompt: optionally enable a system prompt via the toggle; click Settings to adjust temperature and max tokens
  3. Run Benchmark: result cards appear immediately and stream token-by-token; latency and token charts update when all models finish
  4. Auto-evaluate: click Evaluate in the panel above the results to score all responses with a judge model
  5. Vote or regenerate: use thumbs up/down to rate responses, or click the regenerate button on any card to re-run just that model
  6. Analyze with Claude: click "Analyze with Claude" below the result cards to get a full markdown report with cost estimates, trade-off analysis, and scenario-based recommendations
  7. Share: click Copy link next to the Results header to copy a URL that restores your prompt and model selection
  8. Browse history: click History in the top-right to open past runs; click any entry to restore it

Development (without Docker)

Backend:

cd backend
pip install -r requirements.txt
NVIDIA_API_KEY=your_key uvicorn main:app --reload

Frontend:

cd frontend
npm install
npm run dev   # proxies /api/* to http://localhost:8000

Tech stack

Layer Technology
Frontend React 18, Vite 5, Tailwind CSS 3
Backend Python FastAPI, httpx (async)
Benchmark API NVIDIA NIM (OpenAI-compatible)
Recommender AI Anthropic SDK (claude-sonnet-4-6), single call
Benchmark Analyst Anthropic SDK agent loop with tool use (claude-sonnet-4-6)
Infra Docker Compose: nginx serves React, proxies /api/* to FastAPI

Roadmap

  • Streaming responses (token-by-token rendering)
  • Temperature / max_tokens sliders per run
  • Benchmark Analyst: Claude agent with tool use for cost and trade-off analysis

Feedback and contributions

Open an issue at GitHub Issues.


License

MIT

About

An open-source tool to compare NVIDIA's free LLMs side-by-side with streaming responses, judge scoring, and AI-powered model recommendations.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages