snackshell commited on
Commit
516754b
·
verified ·
1 Parent(s): 0d772be

Update apis/chat_api.py

Browse files
Files changed (1) hide show
  1. apis/chat_api.py +16 -0
apis/chat_api.py CHANGED
@@ -5,6 +5,7 @@ import json
5
 
6
 
7
  from fastapi import FastAPI
 
8
  from fastapi.encoders import jsonable_encoder
9
  from fastapi.responses import JSONResponse, StreamingResponse
10
  import uuid
@@ -191,6 +192,12 @@ class ChatAPIApp:
191
  summary="stream translated text (OpenAI-compatible SSE)",
192
  )(self.translate_stream)
193
 
 
 
 
 
 
 
194
  self.app.post(
195
  prefix + "/translate/chat/stream",
196
  summary="stream translated text from OpenAI-style chat payload",
@@ -257,6 +264,15 @@ class ChatAPIApp:
257
 
258
  return StreamingResponse(event_generator(), media_type="text/event-stream")
259
 
 
 
 
 
 
 
 
 
 
260
  def translate_chat_stream(self, item: ChatTranslateStreamItem):
261
  # Extract latest user content
262
  input_text = None
 
5
 
6
 
7
  from fastapi import FastAPI
8
+ from fastapi import Request
9
  from fastapi.encoders import jsonable_encoder
10
  from fastapi.responses import JSONResponse, StreamingResponse
11
  import uuid
 
192
  summary="stream translated text (OpenAI-compatible SSE)",
193
  )(self.translate_stream)
194
 
195
+ # Raw-text friendly streaming endpoint to avoid JSON escaping issues
196
+ self.app.post(
197
+ prefix + "/translate/stream/raw",
198
+ summary="stream translated text (plain text body; set ?to_language=am)",
199
+ )(self.translate_stream_raw)
200
+
201
  self.app.post(
202
  prefix + "/translate/chat/stream",
203
  summary="stream translated text from OpenAI-style chat payload",
 
264
 
265
  return StreamingResponse(event_generator(), media_type="text/event-stream")
266
 
267
+ async def translate_stream_raw(self, request: Request, to_language: str = "am"):
268
+ body_bytes = await request.body()
269
+ input_text = body_bytes.decode("utf-8", errors="ignore")
270
+ payload = self.TranslateCompletionsPostItem(
271
+ to_language=to_language,
272
+ input_text=input_text,
273
+ )
274
+ return self.translate_stream(payload)
275
+
276
  def translate_chat_stream(self, item: ChatTranslateStreamItem):
277
  # Extract latest user content
278
  input_text = None