Spaces:
Running
Running
Revert "ai: Implementing parallel request with first-success strategy."
Browse filesThis reverts commit 4f6f36362a39d4a0ae777d9b8f1d1347f6abe55b.
jarvis.py
CHANGED
@@ -219,10 +219,6 @@ async def fetch_response_async(host, key, model, msgs, cfg, sid):
|
|
219 |
marked_item(key, LINUX_SERVER_PROVIDER_KEYS_MARKED, LINUX_SERVER_PROVIDER_KEYS_ATTEMPTS)
|
220 |
return None
|
221 |
|
222 |
-
async def candidate_task(h, k, model, msgs, cfg, sid):
|
223 |
-
r = await fetch_response_async(h, k, model, msgs, cfg, sid)
|
224 |
-
return r, (h, k)
|
225 |
-
|
226 |
async def chat_with_model_async(history, user_input, model_display, sess, custom_prompt):
|
227 |
ensure_stop_event(sess)
|
228 |
if not get_available_items(LINUX_SERVER_PROVIDER_KEYS, LINUX_SERVER_PROVIDER_KEYS_MARKED) or not get_available_items(LINUX_SERVER_HOSTS, LINUX_SERVER_HOSTS_ATTEMPTS):
|
@@ -245,25 +241,18 @@ async def chat_with_model_async(history, user_input, model_display, sess, custom
|
|
245 |
sess.active_candidate = None
|
246 |
keys = get_available_items(LINUX_SERVER_PROVIDER_KEYS, LINUX_SERVER_PROVIDER_KEYS_MARKED)
|
247 |
hosts = get_available_items(LINUX_SERVER_HOSTS, LINUX_SERVER_HOSTS_ATTEMPTS)
|
248 |
-
|
249 |
-
random.shuffle(
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
except:
|
261 |
-
continue
|
262 |
-
for t in tasks:
|
263 |
-
t.cancel()
|
264 |
-
if first_success:
|
265 |
-
sess.active_candidate = candidate
|
266 |
-
return first_success
|
267 |
return RESPONSES["RESPONSE_2"]
|
268 |
|
269 |
async def respond_async(multi, history, model_display, sess, custom_prompt):
|
|
|
219 |
marked_item(key, LINUX_SERVER_PROVIDER_KEYS_MARKED, LINUX_SERVER_PROVIDER_KEYS_ATTEMPTS)
|
220 |
return None
|
221 |
|
|
|
|
|
|
|
|
|
222 |
async def chat_with_model_async(history, user_input, model_display, sess, custom_prompt):
|
223 |
ensure_stop_event(sess)
|
224 |
if not get_available_items(LINUX_SERVER_PROVIDER_KEYS, LINUX_SERVER_PROVIDER_KEYS_MARKED) or not get_available_items(LINUX_SERVER_HOSTS, LINUX_SERVER_HOSTS_ATTEMPTS):
|
|
|
241 |
sess.active_candidate = None
|
242 |
keys = get_available_items(LINUX_SERVER_PROVIDER_KEYS, LINUX_SERVER_PROVIDER_KEYS_MARKED)
|
243 |
hosts = get_available_items(LINUX_SERVER_HOSTS, LINUX_SERVER_HOSTS_ATTEMPTS)
|
244 |
+
random.shuffle(keys)
|
245 |
+
random.shuffle(hosts)
|
246 |
+
for k in keys:
|
247 |
+
for h in hosts:
|
248 |
+
task = asyncio.create_task(fetch_response_async(h, k, model_key, msgs, cfg, sess.session_id))
|
249 |
+
done, _ = await asyncio.wait({task}, return_when=asyncio.FIRST_COMPLETED)
|
250 |
+
if task in done:
|
251 |
+
result = task.result()
|
252 |
+
if result:
|
253 |
+
sess.active_candidate = (h, k)
|
254 |
+
return result
|
255 |
+
task.cancel()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
return RESPONSES["RESPONSE_2"]
|
257 |
|
258 |
async def respond_async(multi, history, model_display, sess, custom_prompt):
|