#!/usr/bin/env python3 """ Eval runner using the Anthropic API directly. Authenticates via ANTHROPIC_API_KEY. Usage: python claude_runner.py [options] # Set ANTHROPIC_API_KEY in runner/.env, then: python claude_runner.py EVAL_MODEL=claude-haiku-3-5 python claude_runner.py --no-baseline Available models: claude-sonnet-4-6 (default), claude-haiku-4-5-20251001, claude-opus-4-7 """ import sys from pathlib import Path from environs import Env from langchain_anthropic import ChatAnthropic # runner_common.py lives in the same directory sys.path.insert(0, str(__import__("pathlib").Path(__file__).parent)) from runner_common import main _env = Env() _env.read_env(Path(__file__).parent / ".env") DEFAULT_MODEL = "claude-sonnet-4-6" def make_model(model_name: str) -> ChatAnthropic: api_key = _env.str("ANTHROPIC_API_KEY", None) if not api_key: raise SystemExit( "ANTHROPIC_API_KEY is not set.\n Add it to runner/.env or export ANTHROPIC_API_KEY=sk-..." ) # noqa:E501 return ChatAnthropic(model=model_name, api_key=api_key, max_tokens=16384) if __name__ == "__main__": main(make_model, default_model=DEFAULT_MODEL)