bep40 commited on
Commit
8db27ce
·
verified ·
1 Parent(s): 5bce715

Revert patch_models.py to commit c8c52c4 — keep openai/ prefix when routing to OpenRouter (vs stripping it)

Browse files
Files changed (1) hide show
  1. patch_models.py +25 -23
patch_models.py CHANGED
@@ -211,9 +211,9 @@ with open(AGENT_FILE, "w") as f:
211
  f.write(content)
212
 
213
  # === Step 2: Patch _resolve_llm_params for OpenRouter routing ===
214
- # IMPORTANT: Keep the "openai/" prefix for LiteLLM provider detection,
215
- # but STRIP it from the model field when sending to OpenRouter API.
216
- # OpenRouter expects model slugs like "openrouter/owl-alpha" NOT "openai/openrouter/owl-alpha"
217
  with open(LLM_PARAMS_FILE) as f:
218
  llm_content = f.read()
219
 
@@ -230,13 +230,10 @@ new_block = """ hf_model = normalized_model
230
  api_key = _resolve_hf_router_token(session_hf_token)
231
 
232
  # === PATCH: Route ALL openai/-prefixed models to OpenRouter ===
233
- # Keep the "openai/" prefix for LiteLLM provider routing,
234
- # but strip it before sending to OpenRouter API.
235
- # OpenRouter expects model slugs WITHOUT "openai/" prefix.
236
  if normalized_model.startswith("openai/"):
237
- or_model = normalized_model[len("openai/"):] # Strip openai/ prefix
238
  return {
239
- "model": or_model,
240
  "api_base": "https://openrouter.ai/api/v1",
241
  "api_key": os.environ.get("OPENROUTER_API_KEY") or api_key or "",
242
  }
@@ -250,32 +247,37 @@ new_block = """ hf_model = normalized_model
250
 
251
  if old_block in llm_content:
252
  llm_content = llm_content.replace(old_block, new_block)
253
- print("OK: Patched _resolve_llm_params (catch-all openai/ -> OR, strip openai/ prefix)")
254
  elif "normalized_model[len" in llm_content or "actual_model" in llm_content:
255
- # Find and fix any existing OpenRouter routing block
256
  idx = llm_content.find("if normalized_model.startswith(\"openai/\"):")
257
  if idx >= 0:
258
- # Find the return block
259
- ret_idx = llm_content.find("return {", idx)
260
- if ret_idx > 0:
261
- # Find the "model" line in the return block
262
- model_line_start = llm_content.find('"model":', ret_idx)
 
 
 
 
 
 
263
  if model_line_start > 0:
264
  line_start = llm_content.rfind('\n', 0, model_line_start) + 1
265
  line_end = llm_content.find('\n', line_start)
266
  old_model_line = llm_content[line_start:line_end]
267
- # Replace with stripped version
268
- new_model_line = ' "model": normalized_model[len("openai/"):], # Strip openai/ prefix for OpenRouter'
269
  llm_content = llm_content.replace(old_model_line, new_model_line)
270
- print("OK: Fixed model line to strip openai/ prefix")
271
  else:
272
- print("OK: Could not find model line in OpenRouter block")
273
  else:
274
- print("OK: Could not find return block in OpenRouter routing")
275
  else:
276
- print("OK: No existing OpenRouter block found")
277
  else:
278
- print("OK: Routing block not found in expected form")
279
 
280
  try:
281
  ast.parse(llm_content)
@@ -287,4 +289,4 @@ except SyntaxError as e:
287
  with open(LLM_PARAMS_FILE, "w") as f:
288
  f.write(llm_content)
289
 
290
- print("OK: Backend patched - 16 models, ALL openai/ -> OR (strip openai/ prefix), Owl Alpha default")
 
211
  f.write(content)
212
 
213
  # === Step 2: Patch _resolve_llm_params for OpenRouter routing ===
214
+ # IMPORTANT: Keep the "openai/" prefix when sending to OpenRouter!
215
+ # OpenRouter accepts the full slug like "openai/openrouter/owl-alpha".
216
+ # LiteLLM needs "openai/" for provider detection.
217
  with open(LLM_PARAMS_FILE) as f:
218
  llm_content = f.read()
219
 
 
230
  api_key = _resolve_hf_router_token(session_hf_token)
231
 
232
  # === PATCH: Route ALL openai/-prefixed models to OpenRouter ===
233
+ # Keep the "openai/" prefix both LiteLLM and OpenRouter need it.
 
 
234
  if normalized_model.startswith("openai/"):
 
235
  return {
236
+ "model": normalized_model,
237
  "api_base": "https://openrouter.ai/api/v1",
238
  "api_key": os.environ.get("OPENROUTER_API_KEY") or api_key or "",
239
  }
 
247
 
248
  if old_block in llm_content:
249
  llm_content = llm_content.replace(old_block, new_block)
250
+ print("OK: Patched _resolve_llm_params (catch-all openai/ -> OR, keep prefix)")
251
  elif "normalized_model[len" in llm_content or "actual_model" in llm_content:
252
+ # Revert the strip approach keep openai/ prefix
253
  idx = llm_content.find("if normalized_model.startswith(\"openai/\"):")
254
  if idx >= 0:
255
+ or_start = llm_content.find("# === PATCH:", idx)
256
+ if or_start < 0:
257
+ or_start = idx
258
+ or_end = llm_content.find("# === END PATCH", or_start)
259
+ if or_end < 0:
260
+ or_end = llm_content.find("params = {", or_start)
261
+
262
+ # Find the return block and fix it
263
+ ret_line = llm_content.find("return {", or_start, or_end)
264
+ if ret_line > 0:
265
+ model_line_start = llm_content.find('"model":', ret_line)
266
  if model_line_start > 0:
267
  line_start = llm_content.rfind('\n', 0, model_line_start) + 1
268
  line_end = llm_content.find('\n', line_start)
269
  old_model_line = llm_content[line_start:line_end]
270
+ new_model_line = ' "model": normalized_model,'
 
271
  llm_content = llm_content.replace(old_model_line, new_model_line)
272
+ print("OK: Reverted to keep openai/ prefix for OpenRouter")
273
  else:
274
+ print("OK: Could not find model line")
275
  else:
276
+ print("OK: Could not find return block")
277
  else:
278
+ print("OK: Already using correct routing")
279
  else:
280
+ print("OK: Routing already correct")
281
 
282
  try:
283
  ast.parse(llm_content)
 
289
  with open(LLM_PARAMS_FILE, "w") as f:
290
  f.write(llm_content)
291
 
292
+ print("OK: Backend patched - 16 models, ALL openai/ -> OR (keep prefix), GPT-5.5→gpt-oss-120b, Riverflow→north-mini-code:free")