feat: интеграция ML-скоринга с использованием RAG и DeepSeek

- Обновлен Dockerfile для установки необходимых зависимостей.
- Добавлены новые переменные окружения для настройки ML-скоринга в env.example.
- Реализованы методы для получения и обновления ML-скоров в AsyncBotDB и PostRepository.
- Обновлены обработчики публикации постов для интеграции ML-скоринга.
- Добавлен новый обработчик для получения статистики ML-скоринга в админ-панели.
- Обновлены функции для форматирования сообщений с учетом ML-скоров.
This commit is contained in:
2026-01-26 18:40:38 +03:00
parent e2b1353408
commit 7f6f0f028c
25 changed files with 2833 additions and 52 deletions

View File

@@ -78,6 +78,22 @@ async def start_bot(bdf):
await bot.delete_webhook(drop_pending_updates=True)
# Загружаем примеры для RAG из базы данных
scoring_manager = bdf.get_scoring_manager()
if scoring_manager and scoring_manager.rag_service and scoring_manager.rag_service.is_enabled:
try:
db = bdf.get_db()
positive_texts = await db.get_approved_posts_texts(limit=5000)
negative_texts = await db.get_declined_posts_texts(limit=5000)
if positive_texts or negative_texts:
await scoring_manager.load_examples_from_db(positive_texts, negative_texts)
logging.info(f"RAG: Загружено {len(positive_texts)} положительных и {len(negative_texts)} отрицательных примеров")
else:
logging.warning("RAG: Нет примеров в базе данных для загрузки")
except Exception as e:
logging.error(f"Ошибка загрузки примеров для RAG: {e}")
# Запускаем HTTP сервер для метрик параллельно с ботом
metrics_host = bdf.settings.get('Metrics', {}).get('host', '0.0.0.0')
metrics_port = bdf.settings.get('Metrics', {}).get('port', 8080)