Update app.py
Browse files
app.py
CHANGED
@@ -233,13 +233,24 @@ def ask_llm_for_final_prompt(kr_prompt):
|
|
233 |
api_key = os.environ.get("GEMINI_API_KEY")
|
234 |
if not api_key:
|
235 |
logger.error("Gemini API ํค๊ฐ ์ค์ ๋์ง ์์์ต๋๋ค.")
|
236 |
-
return f"
|
237 |
|
238 |
client = genai.Client(api_key=api_key)
|
239 |
|
240 |
llm_prompt = f"""
|
241 |
๋ค์์ ์ด์ปค๋จธ์ค ์ํ ์ด๋ฏธ์ง ๋ฐฐ๊ฒฝ ๋ณ๊ฒฝ์ ์ํ ํ๋กฌํํธ์
๋๋ค. ์ด ํ๋กฌํํธ๋ฅผ ๋ ์์ฐ์ค๋ฝ๊ณ ๋งค๋ ฅ์ ์ธ ์ด๋ฏธ์ง ์์ฑ ํ๋กฌํํธ๋ก
|
242 |
-
๋ค์ ์์ฑํด์ฃผ์ธ์.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
|
244 |
์๋ณธ ํ๋กฌํํธ:
|
245 |
{kr_prompt}
|
@@ -263,16 +274,21 @@ def ask_llm_for_final_prompt(kr_prompt):
|
|
263 |
for part in response.candidates[0].content.parts:
|
264 |
if hasattr(part, 'text') and part.text:
|
265 |
final_prompt += part.text
|
|
|
|
|
|
|
|
|
|
|
266 |
|
267 |
if final_prompt.strip():
|
268 |
logger.info(f"LLM 2์ฐจ ํ๋กฌํํธ ์์ฑ ๊ฒฐ๊ณผ: {final_prompt.strip()}")
|
269 |
return final_prompt.strip()
|
270 |
else:
|
271 |
logger.warning("LLM 2์ฐจ ํ๋กฌํํธ ์์ฑ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค. ์๋ณธ ํ๋กฌํํธ ์ฌ์ฉ")
|
272 |
-
return f"
|
273 |
except Exception as e:
|
274 |
logger.exception("LLM 2์ฐจ ํ๋กฌํํธ ์์ฑ ์ค ์ค๋ฅ ๋ฐ์:")
|
275 |
-
return f"
|
276 |
|
277 |
# LLM ์คํ์ผ ํ๋กฌํํธ ์์ฑ ํจ์
|
278 |
def generate_llm_prompt(product_name, product_category, background_type, background_style, lighting, texture, color_tone, mood):
|
|
|
233 |
api_key = os.environ.get("GEMINI_API_KEY")
|
234 |
if not api_key:
|
235 |
logger.error("Gemini API ํค๊ฐ ์ค์ ๋์ง ์์์ต๋๋ค.")
|
236 |
+
return f"#1 {kr_prompt}"
|
237 |
|
238 |
client = genai.Client(api_key=api_key)
|
239 |
|
240 |
llm_prompt = f"""
|
241 |
๋ค์์ ์ด์ปค๋จธ์ค ์ํ ์ด๋ฏธ์ง ๋ฐฐ๊ฒฝ ๋ณ๊ฒฝ์ ์ํ ํ๋กฌํํธ์
๋๋ค. ์ด ํ๋กฌํํธ๋ฅผ ๋ ์์ฐ์ค๋ฝ๊ณ ๋งค๋ ฅ์ ์ธ ์ด๋ฏธ์ง ์์ฑ ํ๋กฌํํธ๋ก
|
242 |
+
๋ค์ ์์ฑํด์ฃผ์ธ์.
|
243 |
+
|
244 |
+
์ค์ ์๊ตฌ์ฌํญ:
|
245 |
+
1. ๋ฐ๋์ "#1"์ผ๋ก ์์ํด์ผ ํฉ๋๋ค - ์ด๊ฒ์ ์ฐธ์กฐํ ์ด๋ฏธ์ง๋ฅผ ์ง์ ํ๋ ํ๊ทธ์
๋๋ค.
|
246 |
+
2. ์๋ณธ ์ ํ์ ํ์ง๊ณผ ๋ํ
์ผ์ด 100% ์ ์ง๋์ด์ผ ํฉ๋๋ค.
|
247 |
+
3. ๋ฐฐ๊ฒฝ์ด ์์ฐ์ค๋ฝ๊ฒ ์ด์ฐ๋ฌ์ ธ์ผ ํฉ๋๋ค - ํฉ์ฑ์ด ์๋ ์ค์ ์ดฌ์ํ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํด์ฃผ์ธ์.
|
248 |
+
4. ๋ค์ ์์๋ค์ ํฌํจํด์ฃผ์ธ์:
|
249 |
+
- ์ฃผ๋ณ ํ๊ฒฝ๊ณผ์ ์์ฐ์ค๋ฌ์ด ์ํธ์์ฉ (๊ทธ๋ฆผ์, ๋ฐ์ฌ, ํ๊ฒฝ๊ด ๋ฑ)
|
250 |
+
- ์ ํ๊ณผ ๋ฐฐ๊ฒฝ ๊ฐ์ ์์ฐ์ค๋ฌ์ด ๋น ์ํธ์์ฉ
|
251 |
+
- ์ค์ ์ฌ์ง ์ดฌ์ ์ฉ์ด (์คํ๋์ค ์ดฌ์, ์์ฐ๊ด, ๊น์ด๊ฐ ๋ฑ)
|
252 |
+
- ์ค์ ๊ณ ๊ธ ์์
์ฌ์ง ํ์ง (8K, ์ ๋ช
๋, ๋ฆฌ์ผ๋ฆฌ์ฆ)
|
253 |
+
5. ์ธ์์ ์ด๊ฑฐ๋ ํฉ์ฑ๋ ๋๋์ด ์๋, ์ ๋ฌธ ์ ํ ์ฌ์ง์๊ฐ๊ฐ ์ค์ ๋ก ์ดฌ์ํ ๊ฒ ๊ฐ์ ๋๋์ด ๋๋๋ก ํด์ฃผ์ธ์.
|
254 |
|
255 |
์๋ณธ ํ๋กฌํํธ:
|
256 |
{kr_prompt}
|
|
|
274 |
for part in response.candidates[0].content.parts:
|
275 |
if hasattr(part, 'text') and part.text:
|
276 |
final_prompt += part.text
|
277 |
+
|
278 |
+
# LLM ์๋ต์ #1์ด ์๋ ๊ฒฝ์ฐ ๊ฐ์ ๋ก ์ถ๊ฐ
|
279 |
+
final_prompt = final_prompt.strip()
|
280 |
+
if not final_prompt.startswith("#1"):
|
281 |
+
final_prompt = f"#1 {final_prompt}"
|
282 |
|
283 |
if final_prompt.strip():
|
284 |
logger.info(f"LLM 2์ฐจ ํ๋กฌํํธ ์์ฑ ๊ฒฐ๊ณผ: {final_prompt.strip()}")
|
285 |
return final_prompt.strip()
|
286 |
else:
|
287 |
logger.warning("LLM 2์ฐจ ํ๋กฌํํธ ์์ฑ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค. ์๋ณธ ํ๋กฌํํธ ์ฌ์ฉ")
|
288 |
+
return f"#1 {kr_prompt}"
|
289 |
except Exception as e:
|
290 |
logger.exception("LLM 2์ฐจ ํ๋กฌํํธ ์์ฑ ์ค ์ค๋ฅ ๋ฐ์:")
|
291 |
+
return f"#1 {kr_prompt}"
|
292 |
|
293 |
# LLM ์คํ์ผ ํ๋กฌํํธ ์์ฑ ํจ์
|
294 |
def generate_llm_prompt(product_name, product_category, background_type, background_style, lighting, texture, color_tone, mood):
|