feat: initialize full-stack architecture with backend routes, database schema, and glassmorphic frontend UI

This commit is contained in:
2026-05-13 00:12:19 +03:00
parent bd73f18d5c
commit 0732acbda5
21 changed files with 1937 additions and 307 deletions

65
backend/utils/ai_utils.py Normal file
View File

@@ -0,0 +1,65 @@
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)}"