113 lines
3.2 KiB
Python
113 lines
3.2 KiB
Python
from flask import Blueprint, request, jsonify
|
||
from ..middleware import token_required
|
||
from ..utils.ai_utils import generate_complaint_text
|
||
|
||
ai_blueprint = Blueprint('ai', __name__)
|
||
|
||
@ai_blueprint.route('/ai/generate-complaint', methods=['POST'])
|
||
@token_required
|
||
def ai_generate_complaint(current_user_id):
|
||
"""
|
||
Генерация текста претензии с помощью ИИ
|
||
---
|
||
tags:
|
||
- AI
|
||
security:
|
||
- APIKeyHeader: []
|
||
parameters:
|
||
- name: body
|
||
in: body
|
||
required: true
|
||
schema:
|
||
type: object
|
||
properties:
|
||
platform:
|
||
type: string
|
||
violator_article:
|
||
type: string
|
||
my_article:
|
||
type: string
|
||
responses:
|
||
200:
|
||
description: Сгенерированный текст
|
||
"""
|
||
data = request.json
|
||
platform = data.get('platform', 'ozon')
|
||
v_art = data.get('violator_article', '')
|
||
my_art = data.get('my_article', '')
|
||
|
||
if not v_art:
|
||
return jsonify({"error": "Артикул нарушителя обязателен"}), 400
|
||
|
||
text = generate_complaint_text(platform, v_art, my_art)
|
||
return jsonify({"text": text})
|
||
|
||
@ai_blueprint.route('/ai/generate-reply', methods=['POST'])
|
||
@token_required
|
||
def ai_generate_reply(current_user_id):
|
||
"""
|
||
Генерация ответа на отзыв покупателя
|
||
---
|
||
tags:
|
||
- AI
|
||
security:
|
||
- APIKeyHeader: []
|
||
parameters:
|
||
- name: body
|
||
in: body
|
||
required: true
|
||
schema:
|
||
type: object
|
||
properties:
|
||
review_text:
|
||
type: string
|
||
rating:
|
||
type: integer
|
||
responses:
|
||
200:
|
||
description: Сгенерированный ответ
|
||
"""
|
||
data = request.json
|
||
review_text = data.get('review_text', '')
|
||
rating = data.get('rating', 5)
|
||
|
||
if not review_text:
|
||
return jsonify({"error": "Текст отзыва обязателен"}), 400
|
||
|
||
from ..utils.ai_utils import generate_review_reply
|
||
text = generate_review_reply(review_text, rating)
|
||
return jsonify({"text": text})
|
||
|
||
@ai_blueprint.route('/ai/generate-card', methods=['POST'])
|
||
@token_required
|
||
def ai_generate_card(current_user_id):
|
||
"""
|
||
Генерация полной карточки товара
|
||
"""
|
||
data = request.json
|
||
title = data.get('title')
|
||
|
||
if not title:
|
||
return jsonify({"error": "Название товара обязательно"}), 400
|
||
|
||
from ..utils.ai_utils import generate_product_card
|
||
card_data = generate_product_card(title)
|
||
return jsonify(card_data)
|
||
|
||
@ai_blueprint.route('/ai/analyze-competitor', methods=['POST'])
|
||
@token_required
|
||
def ai_analyze_competitor(current_user_id):
|
||
"""
|
||
Глубокий анализ конкурента
|
||
"""
|
||
data = request.json
|
||
my_desc = data.get('my_desc', '')
|
||
comp_desc = data.get('comp_desc', '')
|
||
|
||
if not comp_desc:
|
||
return jsonify({"error": "Описание конкурента обязательно"}), 400
|
||
|
||
from ..utils.ai_utils import analyze_competitor
|
||
result = analyze_competitor(my_desc, comp_desc)
|
||
return jsonify(result)
|