Skip to main content

Live multi-provider model evaluation, scoring, reports, and Elo

Project description

LocalArena

Live multi-provider model evaluation, deterministic scoring, standalone HTML reports, and Elo standings.

pip install localarena

LocalArena calls the endpoints you explicitly configure. It does not bundle recorded answers, copy public leaderboard results, download models, or fall back to another provider.

Command line

Create a JSON configuration with one or more model targets and prompt tasks, then run the complete Cartesian product:

localarena run evaluation.json \
  --output results.json \
  --report report.html

Built-in profiles:

  • llamacpphttp://127.0.0.1:8080/v1
  • ollamahttp://127.0.0.1:11434/v1
  • lmstudiohttp://127.0.0.1:1234/v1
  • openrouterOPENROUTER_API_KEY
  • openaiOPENAI_API_KEY
  • custom — an explicit compatible base URL
localarena providers
localarena models ollama
localarena report results.json --output report.html

Config files use api_key_env and headers_env; literal API keys and sensitive literal headers are rejected. Prompt and answer content is excluded from results by default. Use --include-content only when it is safe to retain that content.

See the complete configuration example and provider/task guide.

Python API

from localarena import (
    EvaluationRunner,
    NumericMatch,
    ModelTarget,
    PromptTask,
    create_provider,
    write_html_report,
)

target = ModelTarget(
    name="local-model",
    provider=create_provider("ollama"),
    model="qwen3:0.6b",
    max_tokens=64,
    temperature=0,
)
task = PromptTask.from_text(
    "arithmetic",
    "Return only the result of 6 multiplied by 7.",
    evaluator=NumericMatch(42),
)

run = EvaluationRunner(
    [target],
    [task],
    max_concurrency=2,
).run(name="Live evaluation")

print(run.to_json())
write_html_report(run, "report.html")

Deterministic evaluators include exact, containment, regular-expression, JSON, and numeric scoring. ModelJudge supports live rubric scoring with another configured target. Generation failures and scoring failures remain individual result rows instead of aborting the run.

Elo arena

The lower-level portable arena remains available:

from localarena import Arena, Result

arena = Arena(["model-a", "model-b"])
arena.record("model-a", "model-b", Result.LEFT)

for row in arena.standings():
    print(row.rank, row.name, row.rating)

Arena and evaluation snapshots are JSON-safe. The npm package implements the same arena and evaluation run contracts.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

localarena-0.2.0.tar.gz (62.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

localarena-0.2.0-py3-none-any.whl (54.6 kB view details)

Uploaded Python 3

File details

Details for the file localarena-0.2.0.tar.gz.

File metadata

  • Download URL: localarena-0.2.0.tar.gz
  • Upload date:
  • Size: 62.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for localarena-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2a938515991c0df4fc4092776b3538606ed104a32de437d9843760d4d4747a47
MD5 478c83290a47cb3730eb6f7d03f0f516
BLAKE2b-256 f3752100ad0a099a452e7e7edef37e046dd4b0adc686f717374ab64e179767f4

See more details on using hashes here.

File details

Details for the file localarena-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: localarena-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 54.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for localarena-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c664703aa9a841bf4bffc7ceeb566b81d17dea282f57a8f37dafb2932e3df61a
MD5 8f7851b8c0d2622c3918d70fad466063
BLAKE2b-256 406b20b462ba3eb44458e436837c0c533efda41f380b62cdc17d89b29d6696e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page