"src/include/Array.hpp" did not exist on "17f3d2d4bccebcc3a70606a916f93dc90e5eaa3a"
Commit 4c9fa6cf authored by Timothy J. Baek's avatar Timothy J. Baek
Browse files

enh: pipe handling

parent 837944dc
...@@ -233,6 +233,16 @@ async def generate_function_chat_completion(form_data, user): ...@@ -233,6 +233,16 @@ async def generate_function_chat_completion(form_data, user):
res = await pipe(**params) res = await pipe(**params)
else: else:
res = pipe(**params) res = pipe(**params)
# Directly return if the response is a StreamingResponse
if isinstance(res, StreamingResponse):
async for data in res.body_iterator:
yield data
return
if isinstance(res, dict):
yield f"data: {json.dumps(res)}\n\n"
return
except Exception as e: except Exception as e:
print(f"Error: {e}") print(f"Error: {e}")
yield f"data: {json.dumps({'error': {'detail':str(e)}})}\n\n" yield f"data: {json.dumps({'error': {'detail':str(e)}})}\n\n"
...@@ -285,15 +295,13 @@ async def generate_function_chat_completion(form_data, user): ...@@ -285,15 +295,13 @@ async def generate_function_chat_completion(form_data, user):
res = await pipe(**params) res = await pipe(**params)
else: else:
res = pipe(**params) res = pipe(**params)
if isinstance(res, StreamingResponse):
return res
except Exception as e: except Exception as e:
print(f"Error: {e}") print(f"Error: {e}")
return {"error": {"detail": str(e)}} return {"error": {"detail": str(e)}}
if inspect.iscoroutinefunction(pipe):
res = await pipe(**params)
else:
res = pipe(**params)
if isinstance(res, dict): if isinstance(res, dict):
return res return res
elif isinstance(res, BaseModel): elif isinstance(res, BaseModel):
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment