@@ -99,22 +99,24 @@ def set_temperature(t):
9999 TEMPERATURE = t
100100
101101
102- def call_claude_api (prompt , model = "claude-sonnet-4-20250514" ):
103- """Send prompt to Claude via Anthropic API."""
104- try :
105- import anthropic
106- except ImportError :
107- print ("anthropic package required: pip install anthropic" )
108- sys .exit (1 )
109-
110- client = anthropic .Anthropic ()
111- response = client .messages .create (
112- model = model ,
113- max_tokens = 10 ,
114- temperature = TEMPERATURE ,
115- messages = [{"role" : "user" , "content" : prompt }],
116- )
117- return response .content [0 ].text , model
102+ def make_claude_api_caller (claude_model ):
103+ """Create a Claude API caller for a specific model."""
104+ def call_claude_api (prompt , model = claude_model ):
105+ try :
106+ import anthropic
107+ except ImportError :
108+ print ("anthropic package required: pip install anthropic" )
109+ sys .exit (1 )
110+
111+ client = anthropic .Anthropic ()
112+ response = client .messages .create (
113+ model = model ,
114+ max_tokens = 10 ,
115+ temperature = TEMPERATURE ,
116+ messages = [{"role" : "user" , "content" : prompt }],
117+ )
118+ return response .content [0 ].text , model
119+ return call_claude_api
118120
119121
120122def call_claude_cli (prompt , model = "claude-cli" ):
@@ -292,12 +294,15 @@ def save_results(all_results, out_file):
292294
293295def run_pilot (models , dry_run = False , verbose = False , ollama_model = "qwen3:4b" , no_think = False ,
294296 ollama_url = "http://localhost:11434" , openai_model = "gpt-4o-mini" ,
295- mistral_model = "mistral-large-latest" , deepseek_model = "deepseek-chat" ):
297+ mistral_model = "mistral-large-latest" , deepseek_model = "deepseek-chat" ,
298+ claude_model = "claude-sonnet-4-20250514" ):
296299 start_time = time .time ()
297300 specs = load_specs ()
298301 print (f"Loaded { len (specs )} anchor specs" )
299302 print (f"Models: { ', ' .join (models )} " )
300303 print (f"Temperature: { TEMPERATURE } " )
304+ if "claude" in models :
305+ print (f"Claude model: { claude_model } " )
301306 if "openai" in models :
302307 print (f"OpenAI model: { openai_model } " )
303308 if "mistral" in models :
@@ -315,7 +320,8 @@ def run_pilot(models, dry_run=False, verbose=False, ollama_model="qwen3:4b", no_
315320 # Include exact model IDs in filename to prevent race conditions
316321 model_ids = []
317322 for m in models :
318- if m == "openai" : model_ids .append (openai_model )
323+ if m == "claude" : model_ids .append (claude_model )
324+ elif m == "openai" : model_ids .append (openai_model )
319325 elif m == "mistral" : model_ids .append (mistral_model )
320326 elif m == "deepseek" : model_ids .append (deepseek_model )
321327 elif m == "ollama" : model_ids .append (f"ollama-{ ollama_model } " )
@@ -327,6 +333,7 @@ def run_pilot(models, dry_run=False, verbose=False, ollama_model="qwen3:4b", no_
327333 "timestamp" : datetime .now (timezone .utc ).isoformat (),
328334 "config" : {
329335 "models" : models ,
336+ "claude_model" : claude_model if "claude" in models else None ,
330337 "openai_model" : openai_model if "openai" in models else None ,
331338 "mistral_model" : mistral_model if "mistral" in models else None ,
332339 "deepseek_model" : deepseek_model if "deepseek" in models else None ,
@@ -340,7 +347,7 @@ def run_pilot(models, dry_run=False, verbose=False, ollama_model="qwen3:4b", no_
340347
341348 for model_name in models :
342349 if model_name == "claude" :
343- call_fn = call_claude_api
350+ call_fn = make_claude_api_caller ( claude_model )
344351 elif model_name == "claude-cli" :
345352 call_fn = call_claude_cli
346353 elif model_name == "claude-haiku" :
@@ -499,8 +506,10 @@ def append_and_save(r):
499506 parser .add_argument ("--model" , nargs = "+" , default = ["claude-cli" ],
500507 choices = ["claude" , "claude-cli" , "claude-haiku" , "openai" , "mistral" , "deepseek" , "ollama" ],
501508 help = "Models to evaluate (default: claude-cli)" )
509+ parser .add_argument ("--claude-model" , default = "claude-sonnet-4-20250514" ,
510+ help = "Claude model name (default: claude-sonnet-4-20250514)" )
502511 parser .add_argument ("--openai-model" , default = "gpt-4o-mini" ,
503- help = "OpenAI model name (default: gpt-4o-mini). Try: gpt-5, gpt-5-mini , gpt-4o" )
512+ help = "OpenAI model name (default: gpt-4o-mini). Try: gpt-5.4-2026-03-05 , gpt-4o" )
504513 parser .add_argument ("--mistral-model" , default = "mistral-large-latest" ,
505514 help = "Mistral model name (default: mistral-large-latest)" )
506515 parser .add_argument ("--deepseek-model" , default = "deepseek-chat" ,
@@ -520,4 +529,5 @@ def append_and_save(r):
520529 args = parser .parse_args ()
521530 set_temperature (args .temperature )
522531 run_pilot (args .model , args .dry_run , args .verbose , args .ollama_model , args .no_think ,
523- args .ollama_url , args .openai_model , args .mistral_model , args .deepseek_model )
532+ args .ollama_url , args .openai_model , args .mistral_model , args .deepseek_model ,
533+ args .claude_model )
0 commit comments