radinhas commited on
Commit
4fbe5ad
1 Parent(s): 0652962

Update apis/chat_api.py

Browse files
Files changed (1) hide show
  1. apis/chat_api.py +30 -6
apis/chat_api.py CHANGED
@@ -43,6 +43,7 @@ class ChatAPIApp:
43
  default="Hello",
44
  description="(str) `Text for translate`",
45
  )
 
46
 
47
  def chat_completions(self, item: ChatCompletionsPostItem):
48
  translator = Translator()
@@ -51,22 +52,40 @@ class ChatAPIApp:
51
  from_lang = 'en'
52
  to_lang = 'en'
53
  for lang_item in available_langs:
54
- if item.from_language == lang_item['code']:
55
- from_lang = item.from_language
56
  if item.to_language == lang_item['code']:
57
  to_lang = item.to_language
 
58
 
59
 
60
- translated = translator.translate(item.input_text, dest=to_lang).text
61
  item_response = {
62
- "from_language": item.from_language,
63
- "to_language": item.to_language,
64
  "text": item.input_text,
65
- "translate": translated
66
  }
67
  json_compatible_item_data = jsonable_encoder(item_response)
68
  return JSONResponse(content=json_compatible_item_data)
69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  def setup_routes(self):
71
  for prefix in ["", "/v1"]:
72
  self.app.get(
@@ -79,6 +98,11 @@ class ChatAPIApp:
79
  summary="translate text",
80
  )(self.chat_completions)
81
 
 
 
 
 
 
82
 
83
  class ArgParser(argparse.ArgumentParser):
84
  def __init__(self, *args, **kwargs):
 
43
  default="Hello",
44
  description="(str) `Text for translate`",
45
  )
46
+
47
 
48
  def chat_completions(self, item: ChatCompletionsPostItem):
49
  translator = Translator()
 
52
  from_lang = 'en'
53
  to_lang = 'en'
54
  for lang_item in available_langs:
 
 
55
  if item.to_language == lang_item['code']:
56
  to_lang = item.to_language
57
+ break
58
 
59
 
60
+ translated = translator.translate(item.input_text, dest=to_lang)
61
  item_response = {
62
+ "from_language": translated.src,
63
+ "to_language": translated.dest,
64
  "text": item.input_text,
65
+ "translate": translated.text
66
  }
67
  json_compatible_item_data = jsonable_encoder(item_response)
68
  return JSONResponse(content=json_compatible_item_data)
69
 
70
+
71
+ class DetectLanguagePostItem(BaseModel)
72
+ input_text: str = Field(
73
+ default="Hello",
74
+ description="(str) `Text for translate`",
75
+ )
76
+
77
+ def detect_language(self, item: DetectLanguagePostItem)
78
+ translator = Translator()
79
+ detected = translator.detect(item.input_text)
80
+
81
+ item_response = {
82
+ "lang": detected.lang,
83
+ "confidence": detected.confidence,
84
+ }
85
+ json_compatible_item_data = jsonable_encoder(item_response)
86
+ return JSONResponse(content=json_compatible_item_data)
87
+
88
+
89
  def setup_routes(self):
90
  for prefix in ["", "/v1"]:
91
  self.app.get(
 
98
  summary="translate text",
99
  )(self.chat_completions)
100
 
101
+ self.app.post(
102
+ prefix + "/detect",
103
+ summary="detect language",
104
+ )(self.detect_language)
105
+
106
 
107
  class ArgParser(argparse.ArgumentParser):
108
  def __init__(self, *args, **kwargs):