Merge pull request #3 from omegaduncan/main
Browse filesfix: Improve round-robin provider selection and add Claude max_tokens auto-fill
- main.py +7 -4
- 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 =
|
186 |
-
auto_retry =
|
187 |
if config['api_keys'][api_index].get("preferences"):
|
188 |
-
|
189 |
-
|
|
|
|
|
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',
|