compat with some third party api
This commit is contained in:
parent
f522691529
commit
5c7499cada
@ -102,20 +102,25 @@ def predict_no_ui_long_connection(inputs, llm_kwargs, history=[], sys_prompt="",
|
|||||||
result = ''
|
result = ''
|
||||||
json_data = None
|
json_data = None
|
||||||
while True:
|
while True:
|
||||||
try: chunk = next(stream_response).decode()
|
try: chunk = next(stream_response)
|
||||||
except StopIteration:
|
except StopIteration:
|
||||||
break
|
break
|
||||||
except requests.exceptions.ConnectionError:
|
except requests.exceptions.ConnectionError:
|
||||||
chunk = next(stream_response).decode() # 失败了,重试一次?再失败就没办法了。
|
chunk = next(stream_response) # 失败了,重试一次?再失败就没办法了。
|
||||||
if len(chunk)==0: continue
|
chunk_decoded, chunkjson, has_choices, choice_valid, has_content, has_role = decode_chunk(chunk)
|
||||||
if not chunk.startswith('data:'):
|
if len(chunk_decoded)==0: continue
|
||||||
error_msg = get_full_error(chunk.encode('utf8'), stream_response).decode()
|
if not chunk_decoded.startswith('data:'):
|
||||||
|
error_msg = get_full_error(chunk, stream_response).decode()
|
||||||
if "reduce the length" in error_msg:
|
if "reduce the length" in error_msg:
|
||||||
raise ConnectionAbortedError("OpenAI拒绝了请求:" + error_msg)
|
raise ConnectionAbortedError("OpenAI拒绝了请求:" + error_msg)
|
||||||
else:
|
else:
|
||||||
raise RuntimeError("OpenAI拒绝了请求:" + error_msg)
|
raise RuntimeError("OpenAI拒绝了请求:" + error_msg)
|
||||||
if ('data: [DONE]' in chunk): break # api2d 正常完成
|
if ('data: [DONE]' in chunk_decoded): break # api2d 正常完成
|
||||||
json_data = json.loads(chunk.lstrip('data:'))['choices'][0]
|
# 提前读取一些信息 (用于判断异常)
|
||||||
|
if has_choices and not choice_valid:
|
||||||
|
# 一些垃圾第三方接口的出现这样的错误
|
||||||
|
continue
|
||||||
|
json_data = chunkjson['choices'][0]
|
||||||
delta = json_data["delta"]
|
delta = json_data["delta"]
|
||||||
if len(delta) == 0: break
|
if len(delta) == 0: break
|
||||||
if "role" in delta: continue
|
if "role" in delta: continue
|
||||||
|
Loading…
x
Reference in New Issue
Block a user