yym68686 commited on
Commit
a11cc62
·
unverified ·
2 Parent(s): 5b7f732 47c28b9

Merge pull request #3 from omegaduncan/main

Browse files

fix: Improve round-robin provider selection and add Claude max_tokens auto-fill

Files changed (2) hide show
  1. main.py +7 -4
  2. request.py +7 -0
main.py CHANGED
@@ -182,11 +182,13 @@ class ModelRequestHandler:
182
 
183
  # 检查是否启用轮询
184
  api_index = api_list.index(token)
185
- use_round_robin = False
186
- auto_retry = False
187
  if config['api_keys'][api_index].get("preferences"):
188
- use_round_robin = config['api_keys'][api_index]["preferences"].get("USE_ROUND_ROBIN")
189
- auto_retry = config['api_keys'][api_index]["preferences"].get("AUTO_RETRY")
 
 
190
 
191
  return await self.try_all_providers(request, matching_providers, use_round_robin, auto_retry)
192
 
@@ -207,6 +209,7 @@ class ModelRequestHandler:
207
  else:
208
  raise HTTPException(status_code=500, detail="Error: Current provider response failed!")
209
 
 
210
  raise HTTPException(status_code=500, detail=f"All providers failed: {request.model}")
211
 
212
  model_handler = ModelRequestHandler()
 
182
 
183
  # 检查是否启用轮询
184
  api_index = api_list.index(token)
185
+ use_round_robin = True
186
+ auto_retry = True
187
  if config['api_keys'][api_index].get("preferences"):
188
+ if config['api_keys'][api_index]["preferences"].get("USE_ROUND_ROBIN") == False:
189
+ use_round_robin = False
190
+ if config['api_keys'][api_index]["preferences"].get("AUTO_RETRY") == False:
191
+ auto_retry = False
192
 
193
  return await self.try_all_providers(request, matching_providers, use_round_robin, auto_retry)
194
 
 
209
  else:
210
  raise HTTPException(status_code=500, detail="Error: Current provider response failed!")
211
 
212
+
213
  raise HTTPException(status_code=500, detail=f"All providers failed: {request.model}")
214
 
215
  model_handler = ModelRequestHandler()
request.py CHANGED
@@ -450,6 +450,13 @@ async def get_vertex_claude_payload(request, engine, provider):
450
  "system": system_prompt or "You are Claude, a large language model trained by Anthropic.",
451
  }
452
 
 
 
 
 
 
 
 
453
  miss_fields = [
454
  'model',
455
  'messages',
 
450
  "system": system_prompt or "You are Claude, a large language model trained by Anthropic.",
451
  }
452
 
453
+ # 檢查是否需要添加 max_tokens
454
+ if 'max_tokens' not in payload:
455
+ if "claude-3-5-sonnet" in model:
456
+ payload['max_tokens'] = 8192
457
+ elif "claude-3" in model: # 處理其他 Claude 3 模型
458
+ payload['max_tokens'] = 4096
459
+
460
  miss_fields = [
461
  'model',
462
  'messages',