Modify polling to execute sequentially from the first API.
Browse files
main.py
CHANGED
@@ -99,7 +99,7 @@ async def process_request(request: RequestModel, provider: Dict):
|
|
99 |
}
|
100 |
|
101 |
# 只有当相应参数存在且不为None时,才添加到payload中
|
102 |
-
print("request: ", request)
|
103 |
if request.stream is not None:
|
104 |
payload["stream"] = request.stream
|
105 |
if request.include_usage is not None:
|
@@ -134,7 +134,7 @@ class ModelRequestHandler:
|
|
134 |
async def request_model(self, request: RequestModel, token: str):
|
135 |
model_name = request.model
|
136 |
matching_providers = self.get_matching_providers(model_name)
|
137 |
-
print("matching_providers", matching_providers)
|
138 |
|
139 |
if not matching_providers:
|
140 |
raise HTTPException(status_code=404, detail="No matching model found")
|
@@ -146,12 +146,13 @@ class ModelRequestHandler:
|
|
146 |
|
147 |
async def try_all_providers(self, request: RequestModel, providers: List[Dict], use_round_robin: bool):
|
148 |
num_providers = len(providers)
|
149 |
-
start_index = self.last_provider_index if use_round_robin else 0
|
150 |
|
151 |
for i in range(num_providers):
|
152 |
if use_round_robin:
|
153 |
-
|
|
|
154 |
else:
|
|
|
155 |
self.last_provider_index = i
|
156 |
|
157 |
provider = providers[self.last_provider_index]
|
|
|
99 |
}
|
100 |
|
101 |
# 只有当相应参数存在且不为None时,才添加到payload中
|
102 |
+
# print("request: ", request)
|
103 |
if request.stream is not None:
|
104 |
payload["stream"] = request.stream
|
105 |
if request.include_usage is not None:
|
|
|
134 |
async def request_model(self, request: RequestModel, token: str):
|
135 |
model_name = request.model
|
136 |
matching_providers = self.get_matching_providers(model_name)
|
137 |
+
print("matching_providers", json.dumps(matching_providers, indent=2, ensure_ascii=False))
|
138 |
|
139 |
if not matching_providers:
|
140 |
raise HTTPException(status_code=404, detail="No matching model found")
|
|
|
146 |
|
147 |
async def try_all_providers(self, request: RequestModel, providers: List[Dict], use_round_robin: bool):
|
148 |
num_providers = len(providers)
|
|
|
149 |
|
150 |
for i in range(num_providers):
|
151 |
if use_round_robin:
|
152 |
+
# 始终从第一个提供者开始轮询
|
153 |
+
self.last_provider_index = i % num_providers
|
154 |
else:
|
155 |
+
# 非轮询模式,按顺序尝试
|
156 |
self.last_provider_index = i
|
157 |
|
158 |
provider = providers[self.last_provider_index]
|