hadadrjt commited on
Commit
4da5eac
·
1 Parent(s): 3565479

Revert "ai: Implementing parallel request with first-success strategy."

Browse files

This reverts commit 4f6f36362a39d4a0ae777d9b8f1d1347f6abe55b.

Files changed (1) hide show
  1. jarvis.py +12 -23
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
- cands = [(h, k) for h in hosts for k in keys]
249
- random.shuffle(cands)
250
- tasks = [asyncio.create_task(candidate_task(h, k, model_key, msgs, cfg, sess.session_id)) for h, k in cands]
251
- first_success = None
252
- candidate = None
253
- for task in asyncio.as_completed(tasks):
254
- try:
255
- res, cand = await task
256
- if res is not None:
257
- first_success = res
258
- candidate = cand
259
- break
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):