Explorer
/proc/2012/task/2095/root/tmp/hermes_candidate_tests.py
← Zurück ↓ Download
import subprocess, time, json
from pathlib import Path
cands = [
    'cohere/north-mini-code:free',
    'minimax/minimax-m2.7:free',
    'nvidia/nemotron-3.5-lightning:free',
    'poolside/laguna-s-2.1:free',
    'thinkingmachines/inkling-small:free',
    'google/gemma-4-31b-it:free',
    'nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free',
]
tests = [
    ('A', 'Antworte exakt mit: MODEL-TEST-OK'),
    ('B', 'Löse diese kurze mehrstufige Aufgabe und gib nur die Endwerte aus: Addiere 17 und 28, multipliziere das Ergebnis mit 3 und ziehe 5 ab. Erwartetes Ergebnis: 130.'),
    ('C', 'Führe für diese Aufgabe einen ungefährlichen Tool-Aufruf aus: Verwende das Terminal-Tool ausschließlich für `printf TOOL-CALL-OK` und antworte danach exakt mit TOOL-CALL-OK.'),
]
extra = {
    'cohere/north-mini-code:free': ('D', 'Korrigiere diese fehlerhafte Python-Funktion und gib nur den korrigierten Code aus: def add(a, b): return a - b'),
    'poolside/laguna-s-2.1:free': ('D', 'Korrigiere diese fehlerhafte Python-Funktion und gib nur den korrigierten Code aus: def add(a, b): return a - b'),
}
out = Path('/tmp/openrouter-candidate-tests.json')
results = []
for model in cands:
    seq = tests + ([extra[model]] if model in extra else [])
    for label, prompt in seq:
        cmd = "set -a; . /home/hermes/.hermes/.env; set +a; exec /home/hermes/.hermes/hermes-agent/venv/bin/hermes chat --profile agent-template --provider openrouter --model %s -q %s --oneshot -Q --run-budget 60" % (model, repr(prompt))
        started = time.time()
        try:
            r = subprocess.run(['bash','-lc',cmd], capture_output=True, text=True, timeout=90)
            rec = {'model': model, 'test': label, 'rc': r.returncode, 'seconds': round(time.time()-started,1), 'stdout': r.stdout.strip(), 'stderr': r.stderr.strip()}
        except subprocess.TimeoutExpired as e:
            rec = {'model': model, 'test': label, 'rc': 'TIMEOUT', 'seconds': 90, 'stdout': str(e.stdout or ''), 'stderr': str(e.stderr or '')}
        results.append(rec)
        out.write_text(json.dumps(results, ensure_ascii=False, indent=2))
        print(json.dumps({'model':model,'test':label,'rc':rec['rc'],'seconds':rec['seconds'],'stdout':rec['stdout']},ensure_ascii=False), flush=True)