ai-seo-analyzer / models.py
lsdf's picture
Add Title analyzer: length, ngrams, keyword coverage, BERT semantic
e3802f1
raw
history blame
1.06 kB
from pydantic import BaseModel
from typing import List, Dict, Optional, Any
class CompetitorText(BaseModel):
id: int
text: str
class AnalysisRequest(BaseModel):
target_text: str # Текст пользователя
competitors: List[str] # Список текстов конкурентов
keywords: List[str] # Список ключевых фраз (сырых)
language: str = "en" # en, ru, de, es, it
target_title: str = "" # Title пользователя
competitor_titles: List[str] = [] # Title конкурентов
class AnalysisResponse(BaseModel):
ngram_stats: dict # Статистика униграм/биграм
bm25_recommendations: List[dict] # Рекомендации "добавить/убрать"
bert_analysis: Dict[str, Any] # Векторный анализ
word_counts: Dict[str, Any] # {'target': 500, 'competitors': [600, 450], 'avg': 525}
title_analysis: Dict[str, Any] = {} # Анализ Title