Skip to content

Commit

Permalink
Merge pull request #1 from JiaYingLii/develop
Browse files Browse the repository at this point in the history
[feature] support gemini stream request
  • Loading branch information
JiaYingLii authored Feb 2, 2024
2 parents 7b8ab00 + 5a93c16 commit d3cf8f1
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
9 changes: 8 additions & 1 deletion openaoe/backend/model/aoe_response.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from pydantic import BaseModel
from typing import Optional

from pydantic import BaseModel


class AOEResponse(BaseModel):
"""
Expand All @@ -11,3 +12,9 @@ class AOEResponse(BaseModel):
data: Optional[object] = None


class StreamResponse(BaseModel):
"""
Standard OpenAOE stream response
"""
success: Optional[bool] = True
msg: Optional[str] = ""
17 changes: 11 additions & 6 deletions openaoe/backend/service/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from jsonstreamer import ObjectStreamer

from openaoe.backend.config.constant import DEFAULT_TIMEOUT_SECONDS
from openaoe.backend.model.aoe_response import AOEResponse
from openaoe.backend.model.aoe_response import AOEResponse, StreamResponse
from openaoe.backend.util.log import log

logger = log(__name__)
Expand Down Expand Up @@ -79,15 +79,20 @@ async def base_stream(provider, url, method: str, headers: dict, stream_callback

for text in res.iter_text():
streamer.consume(text)
yield mystdout.getvalue()
res = mystdout.getvalue()
stream_res = json.dumps(jsonable_encoder(StreamResponse(msg=res)))
# format res
yield stream_res
# clear printed string
sys.stdout.seek(0)
sys.stdout.truncate()

except Exception as e:
print(traceback.format_exc())
response = AOEResponse()
response.msg = str(e)
res = json.dumps(jsonable_encoder(StreamResponse(
success=False,
msg=str(e)
)))
logger.error(f"[{provider}] url: {url}, method: {method}, headers: {jsonable_encoder(headers_pure)}, "
f"body: {body_str} failed, response: {jsonable_encoder(response)}")
yield response
f"body: {body_str} failed, response: {res}")
yield res

0 comments on commit d3cf8f1

Please sign in to comment.