refac
This commit is contained in:
@@ -1877,7 +1877,8 @@ async def chat_completion(
|
|||||||
finally:
|
finally:
|
||||||
raise # re-raise to ensure proper task cancellation handling
|
raise # re-raise to ensure proper task cancellation handling
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.error('Error processing chat payload: %s', e)
|
error_detail = e.detail if isinstance(e, HTTPException) else str(e)
|
||||||
|
log.error('Error processing chat payload: %s', error_detail)
|
||||||
if metadata.get('chat_id') and metadata.get('message_id'):
|
if metadata.get('chat_id') and metadata.get('message_id'):
|
||||||
# Update the chat message with the error
|
# Update the chat message with the error
|
||||||
try:
|
try:
|
||||||
@@ -1887,7 +1888,7 @@ async def chat_completion(
|
|||||||
metadata['message_id'],
|
metadata['message_id'],
|
||||||
{
|
{
|
||||||
'parentId': metadata.get('user_message_id', None),
|
'parentId': metadata.get('user_message_id', None),
|
||||||
'error': {'content': str(e)},
|
'error': {'content': error_detail},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1896,7 +1897,7 @@ async def chat_completion(
|
|||||||
await event_emitter(
|
await event_emitter(
|
||||||
{
|
{
|
||||||
'type': 'chat:message:error',
|
'type': 'chat:message:error',
|
||||||
'data': {'error': {'content': str(e)}},
|
'data': {'error': {'content': error_detail}},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
await event_emitter(
|
await event_emitter(
|
||||||
|
|||||||
@@ -94,9 +94,24 @@ async def process_pipeline_inlet_filter(request, payload, user, models):
|
|||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
payload = await response.json()
|
payload = await response.json()
|
||||||
except aiohttp.ClientResponseError as e:
|
except aiohttp.ClientResponseError as e:
|
||||||
res = await response.json() if response.content_type == 'application/json' else {}
|
try:
|
||||||
if 'detail' in res:
|
res = await response.json() if 'application/json' in response.content_type else {}
|
||||||
raise Exception(response.status, res['detail'])
|
if 'detail' in res:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=response.status,
|
||||||
|
detail=res['detail'],
|
||||||
|
)
|
||||||
|
except HTTPException:
|
||||||
|
raise
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=response.status,
|
||||||
|
detail=e.message,
|
||||||
|
)
|
||||||
|
except HTTPException:
|
||||||
|
raise
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.exception(f'Connection error: {e}')
|
log.exception(f'Connection error: {e}')
|
||||||
|
|
||||||
@@ -146,9 +161,21 @@ async def process_pipeline_outlet_filter(request, payload, user, models):
|
|||||||
try:
|
try:
|
||||||
res = await response.json() if 'application/json' in response.content_type else {}
|
res = await response.json() if 'application/json' in response.content_type else {}
|
||||||
if 'detail' in res:
|
if 'detail' in res:
|
||||||
raise Exception(response.status, res)
|
raise HTTPException(
|
||||||
|
status_code=response.status,
|
||||||
|
detail=res['detail'],
|
||||||
|
)
|
||||||
|
except HTTPException:
|
||||||
|
raise
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=response.status,
|
||||||
|
detail=e.message,
|
||||||
|
)
|
||||||
|
except HTTPException:
|
||||||
|
raise
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.exception(f'Connection error: {e}')
|
log.exception(f'Connection error: {e}')
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import json
|
|||||||
import uuid
|
import uuid
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
from fastapi import Request, status
|
from fastapi import HTTPException, Request, status
|
||||||
from starlette.responses import Response, StreamingResponse, JSONResponse
|
from starlette.responses import Response, StreamingResponse, JSONResponse
|
||||||
|
|
||||||
|
|
||||||
@@ -328,6 +328,8 @@ async def chat_completed(request: Request, form_data: dict, user: Any):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
data = await process_pipeline_outlet_filter(request, data, user, models)
|
data = await process_pipeline_outlet_filter(request, data, user, models)
|
||||||
|
except HTTPException:
|
||||||
|
raise
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise Exception(f'Error: {e}')
|
raise Exception(f'Error: {e}')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user