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