Update app.py
Browse files
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"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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):
|