mirror of
https://github.com/KoboldAI/KoboldAI-Client.git
synced 2025-06-05 21:59:24 +02:00
Merge pull request #148 from db0/async_error_control
Async error control
This commit is contained in:
37
aiserver.py
37
aiserver.py
@@ -5344,6 +5344,8 @@ def sendtocluster(txt, min, max):
|
|||||||
'api_key': koboldai_vars.apikey,
|
'api_key': koboldai_vars.apikey,
|
||||||
'models': koboldai_vars.cluster_requested_models,
|
'models': koboldai_vars.cluster_requested_models,
|
||||||
}
|
}
|
||||||
|
if cluster_metadata["models"] == [""]:
|
||||||
|
cluster_metadata["models"] = []
|
||||||
logger.debug(f"Horde Payload: {cluster_metadata}")
|
logger.debug(f"Horde Payload: {cluster_metadata}")
|
||||||
try:
|
try:
|
||||||
# Create request
|
# Create request
|
||||||
@@ -5373,7 +5375,7 @@ def sendtocluster(txt, min, max):
|
|||||||
try:
|
try:
|
||||||
js = req.json()
|
js = req.json()
|
||||||
except requests.exceptions.JSONDecodeError:
|
except requests.exceptions.JSONDecodeError:
|
||||||
errmsg = f"Unexpected message received from the Horde: '{req.text}'"
|
errmsg = f"Unexpected message received from the KoboldAI Horde: '{req.text}'"
|
||||||
logger.error(errmsg)
|
logger.error(errmsg)
|
||||||
emit('from_server', {'cmd': 'errmsg', 'data': errmsg}, broadcast=True)
|
emit('from_server', {'cmd': 'errmsg', 'data': errmsg}, broadcast=True)
|
||||||
set_aibusy(0)
|
set_aibusy(0)
|
||||||
@@ -5383,12 +5385,41 @@ def sendtocluster(txt, min, max):
|
|||||||
#We've sent the request and got the ID back, now we need to watch it to see when it finishes
|
#We've sent the request and got the ID back, now we need to watch it to see when it finishes
|
||||||
finished = False
|
finished = False
|
||||||
while not finished:
|
while not finished:
|
||||||
js = requests.get(koboldai_vars.colaburl[:-8] + "/api/v1/generate/check/" + request_id).json()
|
try:
|
||||||
|
req = requests.get(koboldai_vars.colaburl[:-8] + "/api/v1/generate/check/" + request_id)
|
||||||
|
except requests.exceptions.ConnectionError:
|
||||||
|
errmsg = f"Horde unavailable. Please try again later"
|
||||||
|
logger.error(errmsg)
|
||||||
|
emit('from_server', {'cmd': 'errmsg', 'data': errmsg}, broadcast=True)
|
||||||
|
set_aibusy(0)
|
||||||
|
return
|
||||||
|
if(not req.ok):
|
||||||
|
errmsg = f"KoboldAI API Error: Failed to get a standard reply from the Horde. Please check the console."
|
||||||
|
logger.error(req.text)
|
||||||
|
emit('from_server', {'cmd': 'errmsg', 'data': errmsg}, broadcast=True)
|
||||||
|
set_aibusy(0)
|
||||||
|
return
|
||||||
|
try:
|
||||||
|
js = req.json()
|
||||||
|
except requests.exceptions.JSONDecodeError:
|
||||||
|
errmsg = f"Unexpected message received from the KoboldAI Horde: '{req.text}'"
|
||||||
|
logger.error(errmsg)
|
||||||
|
emit('from_server', {'cmd': 'errmsg', 'data': errmsg}, broadcast=True)
|
||||||
|
set_aibusy(0)
|
||||||
|
return
|
||||||
|
if not "done" in js:
|
||||||
|
errmsg = f"Unexpected response received from the KoboldAI Horde: '{js}'"
|
||||||
|
logger.error(errmsg )
|
||||||
|
emit('from_server', {'cmd': 'errmsg', 'data': errmsg}, broadcast=True)
|
||||||
|
set_aibusy(0)
|
||||||
|
return
|
||||||
finished = js["done"]
|
finished = js["done"]
|
||||||
koboldai_vars.horde_wait_time = js["wait_time"]
|
koboldai_vars.horde_wait_time = js["wait_time"]
|
||||||
koboldai_vars.horde_queue_position = js["queue_position"]
|
koboldai_vars.horde_queue_position = js["queue_position"]
|
||||||
koboldai_vars.horde_queue_size = js["waiting"]
|
koboldai_vars.horde_queue_size = js["waiting"]
|
||||||
time.sleep(0.1)
|
if not finished:
|
||||||
|
logger.debug(js)
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
logger.debug("Last Horde Status Message: {}".format(js))
|
logger.debug("Last Horde Status Message: {}".format(js))
|
||||||
js = requests.get(koboldai_vars.colaburl[:-8] + "/api/v1/generate/prompt/" + request_id).json()['generations']
|
js = requests.get(koboldai_vars.colaburl[:-8] + "/api/v1/generate/prompt/" + request_id).json()['generations']
|
||||||
|
Reference in New Issue
Block a user