Kims12 commited on
Commit
11eae0e
Β·
verified Β·
1 Parent(s): 5090208

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -1
app.py CHANGED
@@ -25,16 +25,36 @@ def translate_prompt_to_english(prompt):
25
  """
26
  μž…λ ₯된 ν”„λ‘¬ν”„νŠΈμ— ν•œκΈ€μ΄ ν¬ν•¨λ˜μ–΄ 있으면 Gemini‑2.0‑flash λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ μ˜μ–΄λ‘œ λ²ˆμ—­ν•©λ‹ˆλ‹€.
27
  ν•œκΈ€μ΄ μ—†μœΌλ©΄ 원본 ν”„λ‘¬ν”„νŠΈλ₯Ό κ·ΈλŒ€λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€.
 
28
  """
29
  if not re.search("[κ°€-힣]", prompt):
30
  return prompt
 
 
 
 
 
 
31
  try:
32
  api_key = os.environ.get("GEMINI_API_KEY")
33
  if not api_key:
34
  logger.error("Gemini API ν‚€κ°€ μ„€μ •λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.")
 
 
 
 
35
  return prompt
 
36
  client = genai.Client(api_key=api_key)
37
- translation_prompt = f"Translate the following Korean text to English:\n\n{prompt}"
 
 
 
 
 
 
 
 
38
  logger.info(f"Translation prompt: {translation_prompt}")
39
  response = client.models.generate_content(
40
  model="gemini-2.0-flash",
@@ -47,18 +67,32 @@ def translate_prompt_to_english(prompt):
47
  max_output_tokens=512
48
  )
49
  )
 
50
  translated_text = ""
51
  for part in response.candidates[0].content.parts:
52
  if hasattr(part, 'text') and part.text:
53
  translated_text += part.text
 
54
  if translated_text.strip():
 
 
 
 
55
  logger.info(f"Translated text: {translated_text.strip()}")
56
  return translated_text.strip()
57
  else:
58
  logger.warning("λ²ˆμ—­ κ²°κ³Όκ°€ μ—†μŠ΅λ‹ˆλ‹€. 원본 ν”„λ‘¬ν”„νŠΈ μ‚¬μš©")
 
 
 
 
59
  return prompt
60
  except Exception as e:
61
  logger.exception("λ²ˆμ—­ 쀑 였λ₯˜ λ°œμƒ:")
 
 
 
 
62
  return prompt
63
 
64
  def preprocess_prompt(prompt, image1, image2, image3):
 
25
  """
26
  μž…λ ₯된 ν”„λ‘¬ν”„νŠΈμ— ν•œκΈ€μ΄ ν¬ν•¨λ˜μ–΄ 있으면 Gemini‑2.0‑flash λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ μ˜μ–΄λ‘œ λ²ˆμ—­ν•©λ‹ˆλ‹€.
27
  ν•œκΈ€μ΄ μ—†μœΌλ©΄ 원본 ν”„λ‘¬ν”„νŠΈλ₯Ό κ·ΈλŒ€λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€.
28
+ μ€‘μš”: #1, #2, #3 νƒœκ·ΈλŠ” λ²ˆμ—­ 전후에 λ°˜λ“œμ‹œ λ³΄μ‘΄λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.
29
  """
30
  if not re.search("[κ°€-힣]", prompt):
31
  return prompt
32
+
33
+ # #1, #2, #3 νƒœκ·Έλ₯Ό μž„μ‹œ ν† ν°μœΌλ‘œ λŒ€μ²΄ν•˜μ—¬ 보쑴
34
+ prompt = prompt.replace("#1", "IMAGE_TAG_ONE")
35
+ prompt = prompt.replace("#2", "IMAGE_TAG_TWO")
36
+ prompt = prompt.replace("#3", "IMAGE_TAG_THREE")
37
+
38
  try:
39
  api_key = os.environ.get("GEMINI_API_KEY")
40
  if not api_key:
41
  logger.error("Gemini API ν‚€κ°€ μ„€μ •λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.")
42
+ # μž„μ‹œ 토큰을 μ›λž˜ νƒœκ·Έλ‘œ 볡원
43
+ prompt = prompt.replace("IMAGE_TAG_ONE", "#1")
44
+ prompt = prompt.replace("IMAGE_TAG_TWO", "#2")
45
+ prompt = prompt.replace("IMAGE_TAG_THREE", "#3")
46
  return prompt
47
+
48
  client = genai.Client(api_key=api_key)
49
+ translation_prompt = f"""
50
+ Translate the following Korean text to English:
51
+
52
+ {prompt}
53
+
54
+ IMPORTANT: The tokens IMAGE_TAG_ONE, IMAGE_TAG_TWO, and IMAGE_TAG_THREE are special tags
55
+ and must be preserved exactly as is in your translation. Do not translate these tokens.
56
+ """
57
+
58
  logger.info(f"Translation prompt: {translation_prompt}")
59
  response = client.models.generate_content(
60
  model="gemini-2.0-flash",
 
67
  max_output_tokens=512
68
  )
69
  )
70
+
71
  translated_text = ""
72
  for part in response.candidates[0].content.parts:
73
  if hasattr(part, 'text') and part.text:
74
  translated_text += part.text
75
+
76
  if translated_text.strip():
77
+ # λ²ˆμ—­λœ ν…μŠ€νŠΈμ—μ„œ μž„μ‹œ 토큰을 μ›λž˜ νƒœκ·Έλ‘œ 볡원
78
+ translated_text = translated_text.replace("IMAGE_TAG_ONE", "#1")
79
+ translated_text = translated_text.replace("IMAGE_TAG_TWO", "#2")
80
+ translated_text = translated_text.replace("IMAGE_TAG_THREE", "#3")
81
  logger.info(f"Translated text: {translated_text.strip()}")
82
  return translated_text.strip()
83
  else:
84
  logger.warning("λ²ˆμ—­ κ²°κ³Όκ°€ μ—†μŠ΅λ‹ˆλ‹€. 원본 ν”„λ‘¬ν”„νŠΈ μ‚¬μš©")
85
+ # μž„μ‹œ 토큰을 μ›λž˜ νƒœκ·Έλ‘œ 볡원
86
+ prompt = prompt.replace("IMAGE_TAG_ONE", "#1")
87
+ prompt = prompt.replace("IMAGE_TAG_TWO", "#2")
88
+ prompt = prompt.replace("IMAGE_TAG_THREE", "#3")
89
  return prompt
90
  except Exception as e:
91
  logger.exception("λ²ˆμ—­ 쀑 였λ₯˜ λ°œμƒ:")
92
+ # μž„μ‹œ 토큰을 μ›λž˜ νƒœκ·Έλ‘œ 볡원
93
+ prompt = prompt.replace("IMAGE_TAG_ONE", "#1")
94
+ prompt = prompt.replace("IMAGE_TAG_TWO", "#2")
95
+ prompt = prompt.replace("IMAGE_TAG_THREE", "#3")
96
  return prompt
97
 
98
  def preprocess_prompt(prompt, image1, image2, image3):