133 lines
7.1 KiB
Python
133 lines
7.1 KiB
Python
import os
|
||
import google.generativeai as genai
|
||
|
||
def generate_complaint_text(platform, violator_article, my_article=None):
|
||
"""Генерирует текст претензии с помощью Google Gemini."""
|
||
api_key = os.getenv('GEMINI_API_KEY')
|
||
if not api_key:
|
||
return "Ошибка: API ключ для Gemini не настроен в .env"
|
||
|
||
genai.configure(api_key=api_key)
|
||
model = genai.GenerativeModel('gemini-1.5-flash')
|
||
|
||
prompt = f"""
|
||
Ты - профессиональный юрист в сфере интеллектуальной собственности и e-commerce.
|
||
Напиши официальную и убедительную претензию для маркетплейса {platform}.
|
||
|
||
Суть нарушения: продавец с артикулом {violator_article} незаконно использует мой контент или нарушает правила ценообразования.
|
||
Мой оригинальный артикул для сравнения: {my_article if my_article else 'не указан'}.
|
||
|
||
Требования:
|
||
1. Текст должен быть на русском языке.
|
||
2. Стиль официально-деловой.
|
||
3. Упомяни о необходимости защиты прав правообладателя.
|
||
4. Текст должен быть лаконичным (до 500 знаков).
|
||
|
||
Ответ дай сразу в виде текста претензии, без лишних вступлений.
|
||
"""
|
||
|
||
try:
|
||
response = model.generate_content(prompt)
|
||
return response.text.strip()
|
||
except Exception as e:
|
||
return f"Ошибка при генерации текста ИИ: {str(e)}"
|
||
|
||
def generate_review_reply(review_text, rating):
|
||
"""Генерирует ответ на отзыв покупателя."""
|
||
api_key = os.getenv('GEMINI_API_KEY')
|
||
if not api_key:
|
||
return "Ошибка: API ключ не настроен."
|
||
|
||
genai.configure(api_key=api_key)
|
||
model = genai.GenerativeModel('gemini-1.5-flash')
|
||
|
||
prompt = f"""
|
||
Ты - менеджер по работе с клиентами в магазине на маркетплейсе.
|
||
Твоя задача: вежливо и профессионально ответить на отзыв покупателя.
|
||
|
||
Оценка покупателя: {rating} звезд(ы).
|
||
Текст отзыва: "{review_text}"
|
||
|
||
Правила:
|
||
1. Если оценка 4-5 звезд: поблагодари за покупку, вырази радость, предложи посмотреть другие товары нашего бренда.
|
||
2. Если оценка 1-3 звезды: извинись за неудобства, уточни, что мы работаем над качеством, и предложи обратиться в поддержку, если это уместно.
|
||
3. Стиль: дружелюбный, но деловой. Не используй слишком много восклицательных знаков.
|
||
4. Длина: 2-4 предложения.
|
||
5. Не используй шаблоны "Уважаемый покупатель", начни более естественно.
|
||
|
||
Ответ дай сразу в виде готового текста.
|
||
"""
|
||
|
||
try:
|
||
response = model.generate_content(prompt)
|
||
return response.text.strip()
|
||
except Exception as e:
|
||
return f"Ошибка ИИ: {str(e)}"
|
||
|
||
def generate_product_card(title):
|
||
"""Генерирует описание и характеристики товара по его названию."""
|
||
api_key = os.getenv('GEMINI_API_KEY')
|
||
if not api_key:
|
||
return {"error": "API ключ не настроен."}
|
||
|
||
genai.configure(api_key=api_key)
|
||
model = genai.GenerativeModel('gemini-1.5-flash')
|
||
|
||
prompt = f"""
|
||
Ты - эксперт по листингу на маркетплейсах Ozon и Wildberries.
|
||
Тебе дано название товара: "{title}"
|
||
|
||
Твоя задача - сгенерировать контент для карточки товара в формате JSON.
|
||
JSON должен содержать:
|
||
1. "description": Продающее описание (3-4 абзаца), выделяющее преимущества.
|
||
2. "features": Список из 5-8 ключевых характеристик (ключ: значение).
|
||
3. "seo_tags": Список из 10 ключевых слов для поиска.
|
||
4. "image_prompts": 3 подробных промпта для нейросети (на английском), чтобы сгенерировать идеальные фото этого товара (главное фото, в интерьере, детали).
|
||
|
||
Ответ дай ТОЛЬКО в виде чистого JSON, без лишних слов.
|
||
"""
|
||
|
||
try:
|
||
response = model.generate_content(prompt)
|
||
import json
|
||
# Очистка от markdown-обертки если есть
|
||
clean_json = response.text.replace('```json', '').replace('```', '').strip()
|
||
return json.loads(clean_json)
|
||
except Exception as e:
|
||
return {"error": f"Ошибка при генерации карточки: {str(e)}"}
|
||
|
||
def analyze_competitor(my_desc, comp_desc):
|
||
"""Сравнивает две карточки товара и выдает рекомендации."""
|
||
api_key = os.getenv('GEMINI_API_KEY')
|
||
if not api_key:
|
||
return {"error": "API ключ не настроен."}
|
||
|
||
genai.configure(api_key=api_key)
|
||
model = genai.GenerativeModel('gemini-1.5-flash')
|
||
|
||
prompt = f"""
|
||
Ты - старший аналитик по маркетплейсам. Твоя цель: найти способы "победить" карточку конкурента.
|
||
|
||
ОПИСАНИЕ МОЕГО ТОВАРА:
|
||
"{my_desc}"
|
||
|
||
ОПИСАНИЕ ТОВАРА КОНКУРЕНТА:
|
||
"{comp_desc}"
|
||
|
||
Твоя задача - провести анализ и выдать ответ в формате JSON:
|
||
1. "competitor_weakness": Список из 3-4 слабых мест конкурента (что он не упомянул, в чем он хуже).
|
||
2. "my_advantages": В чем мой товар объективно лучше или как это преподнести.
|
||
3. "strategy": Конкретные шаги, что изменить в моем описании или фото, чтобы забрать продажи у него.
|
||
4. "win_phrase": Один мощный рекламный слоган, который "бьет" в слабое место конкурента.
|
||
|
||
Ответ дай ТОЛЬКО в виде чистого JSON.
|
||
"""
|
||
|
||
try:
|
||
response = model.generate_content(prompt)
|
||
import json
|
||
clean_json = response.text.replace('```json', '').replace('```', '').strip()
|
||
return json.loads(clean_json)
|
||
except Exception as e:
|
||
return {"error": f"Ошибка анализа: {str(e)}"}
|