Fix httpx.RemoteProtocolError error
Browse files
utils.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
| 1 |
import json
|
| 2 |
from fastapi import HTTPException
|
|
|
|
| 3 |
|
| 4 |
from log_config import logger
|
| 5 |
|
|
@@ -103,17 +104,17 @@ async def error_handling_wrapper(generator, status_code=200):
|
|
| 103 |
# 如果不是错误,创建一个新的生成器,首先yield第一个项,然后yield剩余的项
|
| 104 |
async def new_generator():
|
| 105 |
yield ensure_string(first_item)
|
| 106 |
-
|
| 107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 108 |
|
| 109 |
return new_generator()
|
|
|
|
| 110 |
except StopAsyncIteration:
|
| 111 |
raise HTTPException(status_code=status_code, detail="data: {'error': 'No data returned'}")
|
| 112 |
-
except Exception as e:
|
| 113 |
-
logger.error(f"error_handling_wrapper Exception: {str(e)}")
|
| 114 |
-
import traceback
|
| 115 |
-
logger.error(f"error_handling_wrapper Exception: {traceback.print_exc()}")
|
| 116 |
-
raise HTTPException(status_code=status_code, detail="data: {'error': 'No data returned'}")
|
| 117 |
|
| 118 |
def post_all_models(token, config, api_list):
|
| 119 |
all_models = []
|
|
|
|
| 1 |
import json
|
| 2 |
from fastapi import HTTPException
|
| 3 |
+
import httpx
|
| 4 |
|
| 5 |
from log_config import logger
|
| 6 |
|
|
|
|
| 104 |
# 如果不是错误,创建一个新的生成器,首先yield第一个项,然后yield剩余的项
|
| 105 |
async def new_generator():
|
| 106 |
yield ensure_string(first_item)
|
| 107 |
+
try:
|
| 108 |
+
async for item in generator:
|
| 109 |
+
yield ensure_string(item)
|
| 110 |
+
except httpx.RemoteProtocolError as e:
|
| 111 |
+
logger.error(f"Remote protocol error occurred: {e}")
|
| 112 |
+
raise StopAsyncIteration
|
| 113 |
|
| 114 |
return new_generator()
|
| 115 |
+
|
| 116 |
except StopAsyncIteration:
|
| 117 |
raise HTTPException(status_code=status_code, detail="data: {'error': 'No data returned'}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
|
| 119 |
def post_all_models(token, config, api_list):
|
| 120 |
all_models = []
|