forked from ckh08045/AutoPercenty
GEMINI 질문을 마크다운 형식으로 받기
이후 마크다운을 HTML 코드로 변환하여 HTML 위젯에 넣는걸로 수정
This commit is contained in:
parent
ccc6494096
commit
305b21798d
83
ai/gemini.py
83
ai/gemini.py
|
|
@ -1,6 +1,7 @@
|
|||
import requests
|
||||
import google.generativeai as genai
|
||||
import logging
|
||||
import markdown
|
||||
|
||||
# 로거 인스턴스 가져오기
|
||||
logger = logging.getLogger('default_logger')
|
||||
|
|
@ -59,6 +60,7 @@ class ImageDescriptionGenerator:
|
|||
너는 온라인 쇼핑몰 상세페이지 제작 전문가야. 니가 만든 상품페이지는 모두를 감동시키고, 구매로 이어지는 마법같은 능력이 있어.
|
||||
이제 주어진 이미지와 내가 원하는 상세페이지에 대한 정보를 줄께.
|
||||
하나씩 차근차근 진행해보자.
|
||||
각 질문에 대한 답변을 마크다운 편집기에 바로 사용할 수 있게 문단기호, 구분기호등으로 분리해서 답변해줘.
|
||||
[정보]
|
||||
A. 해당상품의 타오바오 상품명은 '{product_info.tao_title}'
|
||||
B. 해당상품의 키워드는 '{product_info.keyword_title}'
|
||||
|
|
@ -76,22 +78,90 @@ class ImageDescriptionGenerator:
|
|||
E-5. 상품명5 : {product_info.naver_products[4]["productTitle"]}
|
||||
상품가격5 : {product_info.naver_products[4]["price"]}
|
||||
|
||||
[상품명]
|
||||
위의 모든 정보를 바탕으로 상품을 잘 설명한 상품명을 만들어줘 1개 만들어줘.
|
||||
- 상품명 제작 권장 사항 1: 키워드, 용도, 재질, 용량, 형식, 모양,특징등의 단어를 콤마를 제외하고 띄어쓰기로 나열해(용량과 스펙등은 뒤쪽으로 배치).
|
||||
- 상품명 제작 권장 사항 2: 타오바오 상품명과 옵션이름들에서 상품의 특징을 가져와서 상품명에 사용해야해.
|
||||
- 상품명 제작 권장 사항 3 : 경쟁사의 상품명들을 띄어쓰기를 중심으로 단어를 분리하고, 중복된 단어를 모두 제거한 후 나머지 단어들 중 4개를 가져와서 내 상품명 제작에 사용해줘.
|
||||
- 반드시 준시해야 할 상품명 제한 사항 : 형용사 사용 금지, 중복단어 절대 사용 금지, 쉼표나 별표를 포함한 모든 특수문자 금지.
|
||||
- 상품명 형식 : 한글의 글자수로 35자 이상 되어야 해.
|
||||
이 답변은 마크다운 형식으로 '폰트크기 24, 폰트 스타일 굵게'로 해줘
|
||||
|
||||
[상품의 용도]
|
||||
이 상품이 무엇인지, 어떤 용도로 사용하는지 자세하게 설명해줘.
|
||||
이 답변은 마크다운 형식으로 제목을 '폰트크기 20, 폰트 스타일 굵게', 내용은 '폰트크기 16, 들여쓰기'로해줘
|
||||
|
||||
[상품의 무게]
|
||||
이 상품의 배송비 산정을 위해 무게를 kg으로 알려줘.
|
||||
이 답변은 마크다운 형식으로 제목을 '폰트크기 20, 폰트 스타일 굵게', 내용은 '폰트크기 16, 들여쓰기'로해줘
|
||||
|
||||
[상품의 강점과 특징]
|
||||
이 상품의 강점, 특징과 함께 왜 이상품을 사야하는지, 다른제품들과의 차별점은 무엇인지, 기존제품의 어떠한 단점을 개선했는지를 중심으로 홍보문구를 상품이미지에 맞게 자세하고 친절하게 만들어줘."
|
||||
이 답변은 마크다운 형식으로 제목을 '폰트크기 20, 폰트 스타일 굵게', 내용은 '폰트크기 16, 들여쓰기'로해줘
|
||||
|
||||
[사용상 주의점]
|
||||
이 상품의 사용상 주의점을 자세히 알려줘
|
||||
이 답변은 마크다운 형식으로 제목을 '폰트크기 20, 폰트 스타일 굵게', 내용은 '폰트크기 16, 들여쓰기'로해줘
|
||||
|
||||
[상품의 추가 정보]
|
||||
이 상품의 도움이 될만한 또 다른 추가정보를 자세하게 알려줘
|
||||
이 답변은 마크다운 형식으로 제목을 '폰트크기 20, 폰트 스타일 굵게', 내용은 '폰트크기 16, 들여쓰기'로해줘
|
||||
|
||||
'''
|
||||
|
||||
front_prompt = f'''
|
||||
나는 타오바오에서 상품을 가져와서 한국의 온라인 쇼핑몰에서 구매대행업을 하는 사업가야.
|
||||
너는 온라인 쇼핑몰 상세페이지 제작 전문가야. 니가 만든 상품페이지는 모두를 감동시키고, 구매로 이어지는 마법같은 능력이 있어.
|
||||
이제 주어진 이미지와 내가 원하는 상세페이지에 대한 정보를 줄께.
|
||||
하나씩 차근차근 진행해보자.
|
||||
내가 원하는 답변 형식은 바로 상품페이지에 쓸수 있는 형식이야. 해당 부분을 구분하고, 부연설명은 빼줘.
|
||||
[정보]
|
||||
A. 해당상품의 타오바오 상품명은 '{product_info.tao_title}'
|
||||
B. 해당상품의 키워드는 '{product_info.keyword_title}'
|
||||
C. 해당상품을 나타나는 상품의 옵션이름은 '{product_info.trans_option_1_names}'
|
||||
D. 해당상품의 특징이라 할 수 옵션의 공통적인 키워드는 '{product_info.trans_option_1_name_common_parts}'
|
||||
E. 해당상품과 비슷한 상품을 파는 경쟁사의 제품정보는 아래와 같아.
|
||||
E-1. 상품명1 : {product_info.naver_products[0]["productTitle"]}
|
||||
상품가격1 : {product_info.naver_products[0]["price"]}
|
||||
E-2. 상품명2 : {product_info.naver_products[1]["productTitle"]}
|
||||
상품가격2 : {product_info.naver_products[1]["price"]}
|
||||
E-3. 상품명3 : {product_info.naver_products[2]["productTitle"]}
|
||||
상품가격3 : {product_info.naver_products[2]["price"]}
|
||||
E-4. 상품명4 : {product_info.naver_products[3]["productTitle"]}
|
||||
상품가격4 : {product_info.naver_products[3]["price"]}
|
||||
E-5. 상품명5 : {product_info.naver_products[4]["productTitle"]}
|
||||
상품가격5 : {product_info.naver_products[4]["price"]}
|
||||
'''
|
||||
purpose_prompt = f'''
|
||||
[질문]
|
||||
1. 이 상품이 무엇인지, 어떤 용도로 사용하는지 자세하게 설명해줘.
|
||||
'''
|
||||
weight_prompt = f'''
|
||||
[질문]
|
||||
2. 이 상품의 배송비 산정을 위해 무게를 kg으로 알려줘.
|
||||
'''
|
||||
character_prompt = f'''
|
||||
[질문]
|
||||
3. 이 상품의 강점, 특징과 함께 왜 이상품을 사야하는지, 다른제품들과의 차별점은 무엇인지, 기존제품의 어떠한 단점을 개선했는지를 중심으로 홍보문구를 상품이미지에 맞게 자세하고 친절하게 만들어줘."
|
||||
'''
|
||||
warning_prompt = f'''
|
||||
[질문]
|
||||
4. 이 상품의 사용상 주의점을 자세히 알려줘
|
||||
'''
|
||||
addtional_prompt = f'''
|
||||
[질문]
|
||||
5. 이 상품의 도움이 될만한 또 다른 추가정보를 자세하게 알려줘
|
||||
|
||||
|
||||
'''
|
||||
title_prompt = f'''
|
||||
[질문]
|
||||
6. 위의 모든 정보를 바탕으로 상품을 잘 설명한 상품명을 만들어줘 1개 만들어줘.
|
||||
6-1. 상품명 제작 권장 사항 1: 키워드, 용도, 재질, 용량, 형식, 모양,특징등의 단어를 콤마를 제외하고 띄어쓰기로 나열해(용량과 스펙등은 뒤쪽으로 배치).
|
||||
6-2. 상품명 제작 권장 사항 2: 타오바오 상품명과 옵션이름들에서 상품의 특징을 가져와서 상품명에 사용해야해.
|
||||
6-3. 상품명 제작 권장 사항 3 : 경쟁사의 상품명들을 띄어쓰기를 중심으로 단어를 분리하고, 중복된 단어를 모두 제거한 후 나머지 단어들 중 4개를 가져와서 내 상품명 제작에 사용해줘.
|
||||
6-4. 반드시 준시해야 할 상품명 제한 사항 : 형용사 사용 금지, 중복단어 절대 사용 금지, 쉼표나 별표를 포함한 모든 특수문자 금지.
|
||||
6-5. 상품명 형식 : 한글의 글자수로 35자 이상 되어야 해.
|
||||
|
||||
'''
|
||||
|
||||
|
||||
# 원하는 답변형태
|
||||
# 아래와 같은 형식으로 답변해주면 좋겠어.
|
||||
|
|
@ -116,8 +186,11 @@ class ImageDescriptionGenerator:
|
|||
|
||||
# 후보 결과 확인 및 처리
|
||||
if response.candidates and len(response.candidates) > 0:
|
||||
logger.debug(f"{response.text}")
|
||||
return response.text
|
||||
logger.debug(f"response.text : {response.text}")
|
||||
response_html = markdown.markdown(response.text)
|
||||
logger.debug(f"response_html : {response_html}")
|
||||
return response_html
|
||||
|
||||
else:
|
||||
# 후보 결과가 없거나 유효하지 않을 경우 기본 응답 반환
|
||||
return '''
|
||||
|
|
|
|||
|
|
@ -617,9 +617,13 @@ def modify_detail_page(driver, product_info, gemini, translator, delv_collection
|
|||
|
||||
# contents 변수의 값이 None이 아닐 때만 send_keys 메서드를 호출합니다.
|
||||
if aicontents is not None:
|
||||
html_insert_btn_xpath="//div[@id='productMainContentContainerId']/div/div/div[2]/div[2]/div/div/div[2]/div/div/button[7]"
|
||||
click_element(driver, 'XPATH', html_insert_btn_xpath, 5, 'ac')
|
||||
detail_content.send_keys(aicontents)
|
||||
html_insert_ok_xpath="/html/body/div[6]/div/div[3]/div/div[2]/div[1]/div/div/div[2]/div[2]/div[2]/div/div[1]/div[2]/div/button[1]"
|
||||
click_element(driver, 'XPATH', html_insert_ok_xpath, 5, 'ac')
|
||||
logger.debug(f"AI 컨텐츠 입력완료")
|
||||
|
||||
detail_content.send_keys(Keys.DOWN)
|
||||
else:
|
||||
# contents 변수가 None일 때의 대체 처리
|
||||
# 예: detail_content.send_keys("") 또는 아무 동작도 수행하지 않음
|
||||
|
|
|
|||
Loading…
Reference in New Issue