feat: async filter support

This commit is contained in:
Timothy J. Baek 2024-06-20 20:26:28 -07:00
parent 6bb2f41812
commit 5621025c12
1 changed files with 45 additions and 18 deletions

View File

@ -384,7 +384,10 @@ class ChatCompletionMiddleware(BaseHTTPMiddleware):
try: try:
if hasattr(function_module, "inlet"): if hasattr(function_module, "inlet"):
data = function_module.inlet( inlet = function_module.inlet
if inspect.iscoroutinefunction(inlet):
data = await inlet(
data, data,
{ {
"id": user.id, "id": user.id,
@ -393,6 +396,17 @@ class ChatCompletionMiddleware(BaseHTTPMiddleware):
"role": user.role, "role": user.role,
}, },
) )
else:
data = inlet(
data,
{
"id": user.id,
"email": user.email,
"name": user.name,
"role": user.role,
},
)
except Exception as e: except Exception as e:
print(f"Error: {e}") print(f"Error: {e}")
return JSONResponse( return JSONResponse(
@ -1007,7 +1021,9 @@ async def chat_completed(form_data: dict, user=Depends(get_verified_user)):
try: try:
if hasattr(function_module, "outlet"): if hasattr(function_module, "outlet"):
data = function_module.outlet( outlet = function_module.outlet
if inspect.iscoroutinefunction(outlet):
data = await outlet(
data, data,
{ {
"id": user.id, "id": user.id,
@ -1016,6 +1032,17 @@ async def chat_completed(form_data: dict, user=Depends(get_verified_user)):
"role": user.role, "role": user.role,
}, },
) )
else:
data = outlet(
data,
{
"id": user.id,
"email": user.email,
"name": user.name,
"role": user.role,
},
)
except Exception as e: except Exception as e:
print(f"Error: {e}") print(f"Error: {e}")
return JSONResponse( return JSONResponse(