rockerritesh commited on
Commit
51ef325
·
verified ·
1 Parent(s): a24b910

Upload 4 files

Browse files
Files changed (4) hide show
  1. main.py +25 -1
  2. models.py +4 -0
  3. prompts.py +14 -0
  4. utils.py +26 -2
main.py CHANGED
@@ -4,7 +4,7 @@ from fastapi.middleware.cors import CORSMiddleware
4
  from PIL import Image
5
  import io
6
  import json
7
- from utils import get_text
8
  from json_flatten import flatten
9
 
10
  app = FastAPI(
@@ -107,3 +107,27 @@ async def list_models():
107
  ]
108
 
109
  return JSONResponse(content={"models": models})
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  from PIL import Image
5
  import io
6
  import json
7
+ from utils import get_text, translate_text
8
  from json_flatten import flatten
9
 
10
  app = FastAPI(
 
107
  ]
108
 
109
  return JSONResponse(content={"models": models})
110
+
111
+
112
+ @app.get("/translate")
113
+ async def translate_text_endpoint(text: str, target_language: str):
114
+ """
115
+ ### Endpoint Description:
116
+ Translate text to a specified language.
117
+
118
+ #### Request Parameters:
119
+ - `text`: The text to translate. (Required)
120
+ - `target_language`: The language to translate the text to. (Required)
121
+
122
+ #### Response:
123
+ - The translated text in the specified language.
124
+ """
125
+
126
+ try:
127
+ # print(target_language)
128
+ response = translate_text(text, target_language)
129
+ # print(response) #{"translated_text":"नमस्ते","translated_language":"नेपाली"}
130
+ response = json.loads(response)
131
+ return JSONResponse(content=response)
132
+ except Exception as e:
133
+ return JSONResponse(content={"error": str(e)}, status_code=400)
models.py CHANGED
@@ -5,3 +5,7 @@ from typing import Optional, List
5
  class FormDetails(BaseModel):
6
  fields: List[str]
7
  values: List[str]
 
 
 
 
 
5
  class FormDetails(BaseModel):
6
  fields: List[str]
7
  values: List[str]
8
+
9
+ class TranslateDetails(BaseModel):
10
+ translated_text: str
11
+ translated_language: str
prompts.py CHANGED
@@ -25,3 +25,17 @@ prompt = """Please extract the [{}] details from this image, and then output int
25
 
26
  # # Print or use the resulting system_prompt
27
  # print(system_prompt)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
  # # Print or use the resulting system_prompt
27
  # print(system_prompt)
28
+
29
+ translate_system_prompt = """
30
+ You are a translation tool that translates the following text into [{}] language.
31
+ 1. Please translate the text into the language specified.
32
+ 2. The text may contain technical terms, proper nouns, and other specialized vocabulary.
33
+ 3. The text may contain multiple sentences.
34
+ 4. The text may contain spelling errors.
35
+ 5. The text may contain grammatical errors.
36
+ 6. The text may contain punctuation errors.
37
+ 7. The text may contain formatting errors.
38
+ 8. The output should be like [{}] formate json.
39
+ """
40
+
41
+ translation_prompt = """Please translate the following into [{}] language :- \n\n [{}] ."""
utils.py CHANGED
@@ -2,8 +2,8 @@ from dotenv import load_dotenv
2
  import os
3
  # import openai
4
  from openai import OpenAI
5
- from models import FormDetails
6
- from prompts import system_prompt_template, prompt
7
  import base64
8
  from io import BytesIO
9
  import anthropic
@@ -145,4 +145,28 @@ def get_text(image, filename, model, fields="ALL"):
145
  )
146
  response = response.choices[0].message.content
147
  # print(response)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  return response
 
2
  import os
3
  # import openai
4
  from openai import OpenAI
5
+ from models import FormDetails, TranslateDetails
6
+ from prompts import system_prompt_template, prompt, translate_system_prompt, translation_prompt
7
  import base64
8
  from io import BytesIO
9
  import anthropic
 
145
  )
146
  response = response.choices[0].message.content
147
  # print(response)
148
+ return response
149
+
150
+ def translate_text(text, target_language):
151
+ # print("translating")
152
+ client = OpenAI(api_key = OPENAI_API_KEY)
153
+ # print("hi")
154
+ response = client.beta.chat.completions.parse(
155
+ model="gpt-4o",
156
+ messages=[
157
+ {
158
+ "role":"system",
159
+ "content":translate_system_prompt.format(target_language,TranslateDetails.schema_json())
160
+ },
161
+ {
162
+ "role": "user",
163
+ "content": translation_prompt.format(target_language,text)
164
+ },
165
+ ],
166
+
167
+ response_format=TranslateDetails,
168
+ temperature=0.0,
169
+ )
170
+ # print(response.choices[0].message.content)
171
+ response = response.choices[0].message.content
172
  return response